有n个坑位,但最后一个坑位不用特意为它找对象。第一个坑位为它安排最小的值,第二个坑位第二小…最后一个坑位安排最大值。
#include <stdio.h>
void swap(int *a,int *b) //交换两个数的值
{
int temp = *a;
*a = *b;
*b = temp;
}
void selection_sort(int arr[], int len)
{
int i,j;
for (i = 0 ; i < len - 1 ; i++)
{
int min = i;
for (j = i + 1; j < len; j++) //走访未排序的元素
if (arr[j] < arr[min]) //找到目前最小值
min = j; //记录最小值
swap(&arr[min], &arr[i]); //做交換
}
}
int main()
{
int arr[]={20,23,19,67,34,39};
int len=(int)sizeof(arr)/sizeof(*arr);
selection_sort(arr,len);
int i;
for(i=0;i<len;i++)
printf("%d\n",arr[i]);
return 0;
}