菜鳥一枚,
剛剛學習數據結構與算法,
爲了加深理解,
所以與同學們分享學習過程。
今天學習的是,
選擇排序!!!
選擇排序:n-i次關鍵字 的比較,
從n-i+1個記錄中選出最小的記錄,
並和i(1<=i<=n)個記錄交換。
那麼讓代碼說話
#include <stdio.h>
void slectsort(int k[],int n)
{
int i,j,temp,min;
for(i=0;i < n-1;i++)
{
min = i; //設第一個爲最小
for(j = i+1;j < n;j++) //若這個min的找到比他更小的,
{ //則更小的成爲min,這min再與後面的比較,
if(k[j]<k[min]) //一輪後這個min爲數組中最小,並與第一個交換,
//第二輪,設第二個爲min,往後比較,同第一輪
{ //最終得出從大到小的數組
min = j;
}
if(min!=i)
{
temp = k[min];
k[min] = k[i];
k[i] = temp;
}
}
}
}
int main()
{
int i,a[10]={4,3,6,1,0,8,7,2,9,5};
slectsort(a,10);
printf("排序後結果爲:");
for(i=0;i<10;i++)
{
printf("%d",a[i]);
}
return 0;
}
謝謝同學們的閱讀~~