C語言 簡單選擇排序法

2021-10-17 18:40:49 字數 1028 閱讀 1454

簡單選擇排序是指一種排序演算法,在簡單選擇排序過程中,所需移動記錄的次數比較少。最好情況下,即待排序記錄初始狀態就已經是正序排列了,則不需要移動記錄。

在要排序的一組數中,選出最小的乙個數與第乙個位置的數交換;然後在剩下的數當中再找最小的與第二個位置的數交換,如此迴圈到倒數第二個數和最後乙個數比較為止。

以從小到大進行排序為例:

陣列裡面有4個元素: len = 4

a[0] = 10

a[1] = 1

a[2] = 20

a[3] = 5

1.第0輪選擇最小數放到a[0]:

將a[0]與a[1]比較,a[1]a[0],不交換

將a[0]與a[3]比較,a[3]>a[0],不交換

最終 a[0] = 1,a[1] = 10,a[2] = 20,a[3] = 5

得到最小數a[0] = 1

2.第1輪選擇次最小數放到a[1]

將a[1]與a[2],a[2]>a[1],不交換

將a[1]與a[3]比較,a[3]3.第2輪選擇第三小數放到a[2]

將a[2]與a[3]比較,a[3]4.最後乙個數自動為最大數

得到最大數a[3] = 20

完成排序 a[0] = 1,a[1] = 5,a[2] = 10,a[3] = 20

//當i=0時,a[0]要與a[1] a[2] a[3] 比較.........

for(i=0;ivoid sort(int arry,int len)

}

} }int main()

; int len = sizeof(arry)/sizeof(arry[0]);

sort(arry,len);

for(m=0;mputchar('\n');

return 0;

}

C 簡單選擇排序

基本思想 第i趟在n i 1 i 1,2,n 1 個記錄中選取關鍵碼最小的記錄作為有序序列的第i個記錄。需要解決的問題?1 如何在待排序序列中選出關鍵碼最小的記錄?2 如何確定待排序序列中最小的記錄在有序序列中的位置?簡單選擇排序實質是一種交換排序,從待排序序列中選取最小的記錄與待排序序列中的最後乙...

簡單選擇排序 簡單選擇排序詳解

n個記錄的檔案的直接選擇排序可經過n 1趟直接選擇排序得到有序結果 初始狀態 無序區為r 1.n 有序區為空。第1趟排序 在無序區r 1.n 中選出關鍵字最小的記錄r k 將它與無序區的第1個記錄r 1 交換,使r 1.1 和r 2.n 分別變為記錄個數增加1個的新有序區和記錄個數減少1個的新無序區...

插入排序法與簡單選擇排序法

written by robert wang in southwest university of science and technology.插入排序法 插入排序就像玩撲克一樣,先找到第一張牌,拿起第二張牌的時候就要進行比較,如果比第一張小,則交換,反之,放在右邊不做處理。我們用程式來解決的話,...