选择排序,按照我的理解 :
一组数列 A1, A2 ..... An ;
第一次循环遍历找出整个序列的 最小值 然后 假设 最小值是 Ax,然后与A1交换;
第二次循环队列是 排除A1, 因为此时A1已经是序列中最小的。从A2....An 找到最小值Ax与A2交换;
直到循环到整个序列列尾;
那我写出我自己的Code 吧,我努力让程序写出的同时,就能体现出上述的思路
SelectSort(int a[],int arr_size)
{
int min_index
int i ;
int j;
for(i=0;i<arr_size;i++)
{
min_index = i;
for(j=i;j<arr_size-i-1;j++)
{
if(a[j]>a[min_index])
min_index = j;
}
if(min_index > i)
swap(&a[i],&a[min_index]);
}
}
void swap(int * a,int *b)
{
int temp ;
temp = * a;
* a= * b ;
* b = tem ;
}
希望得到指正,谢谢你耐着性子看完。