思想
n个元素中找出最小的元素,然后与第一个元素交换位置;固定第一个元素,从第二个元素开始找到次小元素,然后与第二个元素交换位置,以此类推,直到确定第n-1个位置的元素,排序结束。
代码
void selection_sort(int * a, int n)
{
int i,j;
for(i = 0; i <= n-2; i++)
{
int min = i;
for (j = i + 1;j <= n-1;j++)
{if(a[min] > a[j])
min = j;}
int temp;
temp = a[i];
a[i] = a[min];
a[min] = temp;
}
}
int main(void)
{
int a[] = {2,3,1,7,6,5,0};
int length = sizeof(a) / sizeof(int);
selection_sort(a,length);
int i;
for(i=0;i<length;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}