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排序
- Java實現歸併排序Java排序
- php實現 歸併排序,快速排序PHP排序
- 使用 Swift 實現歸併排序Swift排序
- 歸併排序的非遞迴實現排序遞迴
- ForkJoin和氣泡排序組合實現的歸併排序排序
- 利用遞迴實現連結串列的排序(歸併排序)遞迴排序
- 歸併排序與快速排序的一個實現與理解排序
- 三種語言實現歸併排序(C++/Python/Java)排序C++PythonJava
- 七、排序,選擇、冒泡、希爾、歸併、快速排序實現排序
- 歸併排序與快速排序的簡明實現及對比排序
- [排序] 歸併排序排序
- 直播系統原始碼,實現快速排序和歸併排序原始碼排序
- 利用java實現插入排序、歸併排序、快排和堆排序Java排序
- 歸併排序排序
- 快速排序&&歸併排序排序
- C++快速排序與歸併排序的實現(LeetCode 912)C++排序LeetCode
- Go channel 實現歸併排序中的 merge 函式Go排序函式
- 四、歸併排序 && 快速排序排序
- java歸併排序Java排序
- [java]歸併排序Java排序
- 歸併排序模板排序
- 歸併排序:陣列和連結串列的多種實現排序陣列
- Python八大演算法的實現,插入排序、希爾排序、氣泡排序、快速排序、直接選擇排序、堆排序、歸併排序、基數排序。Python演算法排序
- 歸併排序--二路排序排序
- 排序演算法__歸併排序排序演算法
- 排序演算法:歸併排序排序演算法
- 歸併排序和基數排序排序
- 歸併排序--排序演算法排序演算法
- 排序演算法 - 歸併排序排序演算法
- 排序演算法——歸併排序排序演算法
- 排序演算法(歸併排序)排序演算法
- 歸併排序 js demo排序JS
- C# 歸併排序C#排序
- 【筆記】歸併排序筆記排序
- 歸併排序例項排序