1. 程式人生 > >【 python 學習筆記 -- 數據結構與算法 】歸並排序 Merge Sort

【 python 學習筆記 -- 數據結構與算法 】歸並排序 Merge Sort

implement 哪些 但是 orm width bsp 過程 完成 分享

【歸並排序】這裏我們利用遞歸算法不斷地將列表一分為二,base case就是列表中沒有元素或者只剩一個元素,因為此時這個子列表必然是正序的;然後再逐步把兩個排序完成的子列表合並成一個新的正序列表,直到所有元素排序完畢。

【示意圖】這是一個從下至上的過程(Bottom-Up)

  將列表不斷從中間分成兩個子列表,直到到達最底部,子列表中只有一個元素

  技術分享圖片

  然後,從下至上不斷合並兩個子列表,將兩個子列表的所有元素排序形成一個新的列表。

  技術分享圖片

【 implementation of merge sort 】

  技術分享圖片

  可以利用print查看每一步做了哪些操作。

【 performance analysis 】

  時間復雜度是O(n*log n);但是合並的過程需要多余的空間,空間復雜度為O(n)。

【 python 學習筆記 -- 數據結構與算法 】歸並排序 Merge Sort