1. 設待排序的記錄存放在陣列r[1……n]中。第一趟從r[1]開始,通過n-1次比較,從n個記錄中選出關鍵字最小的記錄,記為r[l],交換r[1]和r[k]。
2. 第二趟從r[2]開始,通過n-2次比較,從n-1個記錄中選出關鍵字最小的記錄,記為r[k],交換r[2]和r[k]。
3. 依次類推,第i趟從r[i]開始,通過n-i次比較,從n-i+1個記錄中選出關鍵子最小的記錄,記為r[k],交換r[i]和r[k]。
4. 經過n-1趟,排序完成。
**如下:
#include // 簡單選擇排序
void selectsort(int ary,int length){
int i,j,k,temp;
for(i=0; i
簡單選擇排序 簡單選擇排序詳解
n個記錄的檔案的直接選擇排序可經過n 1趟直接選擇排序得到有序結果 初始狀態 無序區為r 1.n 有序區為空。第1趟排序 在無序區r 1.n 中選出關鍵字最小的記錄r k 將它與無序區的第1個記錄r 1 交換,使r 1.1 和r 2.n 分別變為記錄個數增加1個的新有序區和記錄個數減少1個的新無序區...
簡單選擇排序
還在看比較簡單的排序演算法,比如這篇提到的簡單選擇排序演算法。基本的思想是,在第i次迭代中找到第i個最小的元素,然後把這個元素與原來在第i個亂序的元素交換位置。形象的說,就是總在觀望,很少出手 而氣泡排序是總在出手,從不觀望 這種演算法的比較if 次數是恆定的,但是swap 的次數只有n 1次。相比...
簡單選擇排序
直接選擇排序,排序思路 每一次排序從無序集合中選取乙個最小的元素和無序序列中第乙個元素 交換,這樣有序集合中加一,無序集合中減一,知道無序集合為空,排序結束。用數學的描述是 初始序列為r 0.n 有序集合為空,無序集合為r 0.n 第一趟排序從無需集合中選取乙個最小 的元素與r 0 交換,第i趟排序...