选择排序
它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。
代码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void c_sort(int len,int arr[])
{
int i,j,k;
for(i=0;i<len-1;i++) //最后一个不用排
{
k=i;
for(j=i+1;j<len;j++)
{
if(arr[k]>arr[j])
k=j; //找最小
}
j=arr[k],arr[k]=arr[i],arr[i]=j; //与最前面未排序的数交换
printf("round %d:",i);
for(k=0;k<len;k++)
printf("%d ",arr[k]);
printf("\n");
}
}
int main()
{
int len,arr[]={2,3,8,6,9,5,4,7,10,1},i;
len=sizeof(arr)/sizeof(int); //数组长度len
c_sort(len,arr);
for(i=0;i<len;i++)
printf("%d ",arr[i]);
return 0;
}