选择排序:输入10个整型元素,对数组进行选择排序,输出从小到大排序后的新数组。
输入格式:输入整型,空格分隔。
输出格式:输入整型,空格分隔。
输入:9 8 5 0 4 2 1 5 7 1
输出:0 1 1 2 4 5 5 7 8 9
思路:简单选择排序,O(n²),一个不稳定的排序算法(数据排序不同,时间不一定)。原理是对n个数进行n-1次遍历。每一次将当前数列里面内最小值取出来放到已排序队列末尾。
代码:
#include<stdio.h>
void Swap(int* a,int* b) //通过两变量地址来交换两变量数值的函数Swap
{
int tmp;
tmp=*a;
*a=*b;
*b=tmp;
}
void SelectSort(int arr[],int len)
{
int i,j;
for(i=0;i<=len-1;i++)
{
int min=i;//最小下标,从0开始,每遍历一轮最小下标的数组变量会放真正的最小数
for(j=i;j<len;j++)
{
if(arr[j]<arr[min])
{
min=j;
}
}
Swap(&arr[i],&arr[min]);
}
}
int main()
{
int a[10],len=10,i;
for(i=0;i<len;i++) //输入数组初始数据
{
scanf("%d",&a[i]);
}
SelectSort(a,len);
for(i=0;i<len;i++) //输出数组数据
{
printf("%d ",a[i]);
}
return 0;
}