排序(歸併 簡單選擇 希爾 插入)

2021-09-02 23:33:53 字數 845 閱讀 8996

歸併操作(merge),也叫歸併演算法,指的是將兩個順序序列合併成乙個順序序列的方法。

如 設有數列

初始狀態:6,202,100,301,38,8,1

第一次歸併後:,,,,比較次數:3;

第二次歸併後:,,比較次數:4;

第三次歸併後:,比較次數:4;

總的比較次數為:3+4+4=11,;

逆序數為14;

簡單選擇排序的基本思想:第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 完成

希爾排序:

插入排序:

選擇 冒泡 歸併 插入及希爾排序

選擇排序每次遍歷一遍陣列,找出最小的數,然後跟陣列的第乙個元素交換。再從剩下的元素中重複此步驟直至陣列排序完畢。時間複雜度與輸入資料無關,為o n 2 每次從首元素開始,從左到右交換相鄰且逆序的元素,一直交換到尾元素時即完成一輪迴圈,此時末尾元素即為最大值。接著在除尾元素外的剩餘元素中繼續上述迴圈,...

簡單選擇排序 簡單選擇排序詳解

n個記錄的檔案的直接選擇排序可經過n 1趟直接選擇排序得到有序結果 初始狀態 無序區為r 1.n 有序區為空。第1趟排序 在無序區r 1.n 中選出關鍵字最小的記錄r k 將它與無序區的第1個記錄r 1 交換,使r 1.1 和r 2.n 分別變為記錄個數增加1個的新有序區和記錄個數減少1個的新無序區...

插入 希爾 選擇排序

排序 一般是原地排序 in place 排序 預設情況下都是按非降序排序 穩定性 能保證排序過程中相等的資料的相對順序不變 1.插入排序 越接近有序,執行時間效率越高 減治演算法排序 直接插入排序,折半插入排序 一共需要進行size 1次插入 插入過程 每次把無序區間的第乙個數,在有序區間遍歷 從後...