選擇排序
(selection sort)是一種簡單直觀的排序演算法。
它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小(大)元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。
最優\最差\平均時間複雜度均為o(n^2)。
/*
@ 選擇排序
@ 思路:每次選擇待排序佇列中最小(大)數放到佇列的頭部,直到輪詢結束
@ 時間複雜度: o(n^2)
*/templatevoid selectsort(t *a, int n)
a[i] = min;
}}
參考:
維基百科-選擇排序
C 實現簡單選擇排序
簡單選擇排序的思想 通過n in i 次關鍵字間的比較,從n i 1 n i 1 個記錄中選出關鍵字最小的記錄,並和第i 1 i n i 1 i n 個記錄交換之。這句話比較晦澀,我們可以通過乙個例子來說明。舉例說明 對於序列為的序列 第一步,記錄為0的關鍵字為9,與記錄為0之後的所有記錄的關鍵字相...
選擇排序 簡單選擇排序
在要排序的一組數中,選出最小 或者最大 的乙個數與第1個位置的數交換 然後在剩下的數當中再找最小 或者最大 的與第2個位置的數交換,依次類推,直到第n 1個元素 倒數第二個數 和第n個元素 最後乙個數 比較為止。第一趟,從n個記錄中找出關鍵碼最小的記錄與第乙個記錄交換 第二趟,從第二個記錄開始的n ...
選擇排序 簡單選擇排序
1.選擇排序 簡單選擇排序,堆排序 與交換排序 氣泡排序,快速排序 的區別 每次比較如果發現較小的元素在後面,就交換兩個相鄰的元素。而選擇排序演算法的改進在於 先並不急於調換位置,先從a 1 開始逐個檢查,看哪個數最小就記下該數所在的位置p,等一躺掃瞄完畢,再把a p 和a 1 對調,這時a 1 到...