簡單選擇排序是指一種排序演算法,在簡單選擇排序過程中,所需移動記錄的次數比較少。最好情況下,即待排序記錄初始狀態就已經是正序排列了,則不需要移動記錄。
在要排序的一組數中,選出最小的乙個數與第乙個位置的數交換;然後在剩下的數當中再找最小的與第二個位置的數交換,如此迴圈到倒數第二個數和最後乙個數比較為止。
以從小到大進行排序為例:
陣列裡面有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.插入排序法 插入排序就像玩撲克一樣,先找到第一張牌,拿起第二張牌的時候就要進行比較,如果比第一張小,則交換,反之,放在右邊不做處理。我們用程式來解決的話,...