MergeSort,歸併排序的Python實現
點選(此處)摺疊或開啟
-
def main():
-
pass
-
-
if __name__ == '__main__':
-
main()
-
-
def part_Sort( sort_list1, sort_list2 ):
-
sorted_list=[]
-
while sort_list1 and sort_list2:
-
if sort_list1[ 0 ] < sort_list2[ 0 ]:
-
sorted_list.append( sort_list1[ 0 ] )
-
sort_list1.pop( 0 )
-
else:
-
sorted_list.append( sort_list2[ 0 ] )
-
sort_list2.pop( 0 )
-
-
if not sort_list1:
-
sorted_list.extend( sort_list2 )
-
sort_list2 = []
-
elif not sort_list2:
-
sorted_list.extend( sort_list1 )
-
sort_list1 = []
-
else:
-
pass
-
return sorted_list
-
-
origin_list = [1, 2, 3, 34, 5, 7, 9, 11, 13, 19, 21,3,5,7,9,55555]
-
-
def mergeSort( m_list ):
-
mid = int( len(m_list)/2 )
-
if len(m_list) <= 1:
-
return m_list
-
return part_Sort( mergeSort(m_list[:mid]), mergeSort(m_list[mid:]))
-
-
- print mergeSort( origin_list )
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29757574/viewspace-2094355/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 歸併排序MergeSort的C實現排序
- Sort排序專題(7)歸併排序(MergeSort)(C++實現)排序C++
- go 實現歸併排序Go排序
- php實現 歸併排序,快速排序PHP排序
- 使用 Swift 實現歸併排序Swift排序
- 歸併排序的非遞迴實現排序遞迴
- 三種語言實現歸併排序(C++/Python/Java)排序C++PythonJava
- 歸併排序與快速排序的一個實現與理解排序
- 利用遞迴實現連結串列的排序(歸併排序)遞迴排序
- C++快速排序與歸併排序的實現(LeetCode 912)C++排序LeetCode
- ForkJoin和氣泡排序組合實現的歸併排序排序
- 七、排序,選擇、冒泡、希爾、歸併、快速排序實現排序
- 直播系統原始碼,實現快速排序和歸併排序原始碼排序
- 利用java實現插入排序、歸併排序、快排和堆排序Java排序
- 歸併排序排序
- 快速排序&&歸併排序排序
- 四、歸併排序 && 快速排序排序
- java歸併排序Java排序
- 歸併排序:陣列和連結串列的多種實現排序陣列
- Python八大演算法的實現,插入排序、希爾排序、氣泡排序、快速排序、直接選擇排序、堆排序、歸併排序、基數排序。Python演算法排序
- 排序演算法__歸併排序排序演算法
- 排序演算法:歸併排序排序演算法
- 排序演算法 - 歸併排序排序演算法
- 排序演算法(歸併排序)排序演算法
- 歸併排序--排序演算法排序演算法
- 歸併排序--二路排序排序
- 歸併排序和基數排序排序
- 歸併排序 js demo排序JS
- 歸併排序的簡單理解排序
- 全面瞭解歸併排序演算法及程式碼實現排序演算法
- 說說你對歸併排序的理解?如何實現?應用場景?排序
- 排序演算法之 '歸併排序'排序演算法
- php插入排序,快速排序,歸併排序,堆排序PHP排序
- 歸併排序 nO(lgn) 稽核中排序
- 歸併排序——C語言排序C語言
- 歸併排序加例題排序
- 淺談歸併排序:合併 K 個升序連結串列的歸併解法排序
- 氣泡排序、歸併排序與快速排序比較排序
- 逆序對的數量(歸併排序模板)排序