簡單選擇排序的基本思想:
第1趟,在待排序記錄r[1]~r[n]中選出最小的記錄,將它與r[1]交換;
第2趟,在待排序記錄r[2]~r[n]中選出最小的記錄,將它與r[2]交換;
第i趟在待排序記錄r[i]~r[n]中選出最小的記錄,將它與r[i]交換,使有序序列不斷增長直到全部排序完畢。
以下為簡單選擇排序的儲存狀態,其中大括號內為無序區,大括號外為有序序列:
初始序列:
第1趟:12與49交換:12
第2趟:27不動 :12 27
第3趟:65與38交換:12 27 38
第4趟:97與49交換:12 27 38 49
第5趟:76與65交換:12 27 38 49 65
第6趟:97與76交換:12 27 38 49 65 76 97
**:
#includeusing namespace std;//公升序
void selectsortupnumone(int array, size_t size) //引數一接受陣列,引數二接受陣列元素個數
} }}//公升序
void selectsortupnumtwo(int array, size_t size) //引數一接受陣列,引數二接受陣列元素個數
} if (index != i) //每趟只用交換一次
}}int main()
; selectsortupnumone(a, 10);
selectsortupnumtwo(a, 10);
}
簡單選擇排序 簡單選擇排序詳解
n個記錄的檔案的直接選擇排序可經過n 1趟直接選擇排序得到有序結果 初始狀態 無序區為r 1.n 有序區為空。第1趟排序 在無序區r 1.n 中選出關鍵字最小的記錄r k 將它與無序區的第1個記錄r 1 交換,使r 1.1 和r 2.n 分別變為記錄個數增加1個的新有序區和記錄個數減少1個的新無序區...
選擇排序 簡單選擇排序
在要排序的一組數中,選出最小 或者最大 的乙個數與第1個位置的數交換 然後在剩下的數當中再找最小 或者最大 的與第2個位置的數交換,依次類推,直到第n 1個元素 倒數第二個數 和第n個元素 最後乙個數 比較為止。第一趟,從n個記錄中找出關鍵碼最小的記錄與第乙個記錄交換 第二趟,從第二個記錄開始的n ...
選擇排序 簡單選擇排序
1.選擇排序 簡單選擇排序,堆排序 與交換排序 氣泡排序,快速排序 的區別 每次比較如果發現較小的元素在後面,就交換兩個相鄰的元素。而選擇排序演算法的改進在於 先並不急於調換位置,先從a 1 開始逐個檢查,看哪個數最小就記下該數所在的位置p,等一躺掃瞄完畢,再把a p 和a 1 對調,這時a 1 到...