使用Python實現八大排序之歸併排序

2021-08-18 07:16:54 字數 1216 閱讀 3895

歸併排序其實就是將乙個長度為n陣列拆分成乙個個長度為1的子串行,然後再通過兩兩進行對比,組成n/2個長度為2的有序陣列,然後再兩組兩組進行對比組合形成n/4個長度為4的有序陣列,直至將整個陣列排序完成。

下圖更加形象的向我們展示了歸併排序的整個流程。

那對於乙個陣列的歸併排序其實總的來說就是兩個步驟:分解和組合。分解就是將陣列分割成乙個個長度為1的子串行,組合就是想子串行進行組合,但是並不是簡單的組合,而是排序後組合後乙個有序的子串行。最後將分解的所有子串行組合在一起成為已經排好序的序列。

下面來看使用python如何來實現歸併排序:

八大排序演算法python實現

1.氣泡排序 氣泡排序重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越大的元素會經由交換慢慢 浮 到數列的頂端,故名。步驟 比較相鄰的元素。如果第乙個比第二個大,就交...

八大排序之快速排序演算法 python實現

我的!快排就是折中時間和空間的乙個演算法,可以說是較為高效的演算法,平時用用他沒啥大問題。注意以下除了實現 其他為 詳見頁末!假設我們現在對 6 1 2 7 9 3 4 5 10 8 這個10個數進行排序。首先在這個序列中隨便找乙個數作為基準數 不要被這個名詞嚇到了,就是乙個用來參照的數,待會你就知...

八大排序之堆排序

public class heapsort heapsort num,num.length for int i 0 i 0 i heapadjust array,i,length 從最後乙個元素開始對序列進行調整,不斷的縮小調整的範圍直到第乙個元素 for i length 1 i 0 i priv...