选择排序是一种较为简单地排序方式,他的主要过程是在未排序的元素中,每次都找出最大的(或最小的)元素,单独放到排序序列的起始位置,然后再次在未排序的元素中找出最大的(或者最小的)元素,放在上一个元素的后面,然后继续用这种方式直至所有的元素有序。
例: 2 85 23 56 45 12 65 76 32
第一次 2 85 23 56 45 12 65 76 32
第二次 2 12 85 23 56 45 65 76 32
第三次 2 12 23 85 56 45 65 76 32
第n 次 2 12 23 32 45 56 65 76 85
代码实现
#include<stdio.h>
#include<stdlib.h>
void sort(int arr[],int len)
{
for(int i=0;i<len-1;i++)
{
int min=i;
for(int j=i+1;j<len;j++)
{
if(arr[j]<arr[min])
{
min=j;
}
}
if(min!=i)
{
int temp=arr[i];
arr[i]=arr[min];
arr[min]=temp;
}
}
}
int main()
{
int arr[]={10,20,30,55,4,56,78,54,32,51};
int len=(int)sizeof(arr)/sizeof(arr[0]);
sort(arr,len);
for(int b=0;b<len;b++)
{
printf("%5d",arr[b]);
}
return 0;
}