八大排序 選擇排序

2021-08-28 15:10:08 字數 1039 閱讀 5988

n個資料的檔案可經過n-1趟直接選擇排序得到有序結果。

①初始狀態:無序區 r[1....n] ,有序區為空。

②第一趟排序:在無序區r[1....n]選出下標最小的記錄r[1],通過比較獲得無序區中最小的,將他與無序區的第乙個記錄r[1]交換,使得r[1..1]和r[2...n]成為新的有序區域,和新的無序區域。

③第i趟排序:第i趟開始時,有序區域r[1......i-1],無序區為r[i....n],該趟排序是從無序區中選擇下標最小的記錄r[i],和無序區中資料比較獲得最小的r[k]和r[i]交換.使得新的有序區域加一。r[1...i]。

for(int i=0;in(n-1)/2次之間。

所以比較次數o(n^2),而交換次數o(n),最好的情況是,已經有序,交換0次;最壞的情況是交換n-1次,逆序交換n/2次。交換次數比氣泡排序少多了,由於交換所需要cpu時間比比較所需的cpu時間多,n較小時,選擇排序比氣泡排序快。

選擇排序是給每個位置選擇當前元素最小的,比如給第乙個位置選擇最小的,在剩餘元素裡面給第二個元素選擇第二小的,一次類推,直到第n-1個元素,第n個元素就不用選擇了,因為只剩下它乙個最大的元素了。

那麼,在一趟選擇,如果乙個元素比當前元素小,而該小的元素又出現在乙個和當前元素相等的元素後面,那麼交換後穩定性就被破壞了。例如:序列5 8 5 2 9,我們知道第一遍選擇第乙個元素5會和2交換,那麼原序列中兩個5的相對順序就被破壞了,所以選擇排序是乙個不穩定的演算法。

待更新

八大排序之選擇排序

個人部落格 建議先看排序綜述,傳送門 資料結構與演算法系列之一 八大排序綜述。選擇排序 selection sort 是一種簡單直觀的排序演算法。它的工作原理如下。首先在未排序序列中找到最小 大 元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小 大 元素,然後放到已排序序列的末...

八大排序之選擇排序

思想 每一趟都從待排序的數列中選擇乙個最大 最小 的,放在數列的最後乙個位置 或起始位置 直到全部待排序的資料元素排完。選擇排序是不穩定的排序方法。例 9 5 3 4 6 2 8 1 7 0 if maxpos len 1 i 如果最大的元素就是在最後位置,就不用交換 int main int le...

八大排序之選擇排序

每一次從待排序的資料元素中選出最小 或最大 的乙個元素,存放在序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小 大 元素,然後放到已排序序列的末尾。以此類推,直到全部待排序的資料元素排完。選擇排序是不穩定的排序方法。每次掃瞄找到最小,到掃瞄到末尾,將本次掃瞄的最小放到左邊 注意與氣泡排序相比較...