python实现归并排序
生活随笔
收集整理的這篇文章主要介紹了
python实现归并排序
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?# 將遞歸分解列表,直至最小(即每個列表僅有一個元素)
?# 將列表分解最小之后,遞歸合并兩個列表,即挨個比較兩個列表中最前面的元素,誰較小就將誰加入新的列表,而后該列表的下標后移一位,繼續比較,直至其中一個列表為空,而后將另一個列表中剩余的元素加入新列表
?# 不斷合并,直至完全排序完成
?# 時間復雜度:?O(nlogn)
def merge_sort(array):n = len(array)if n < 2:return arrayelse:mid = n // 2left = merge_sort(array[0:mid])right = merge_sort(array[mid:])left_pointer, right_pointer = 0, 0result = []while left_pointer < len(left) and right_pointer < len(right):print(left_pointer, right_pointer)if left[left_pointer] < right[right_pointer]:result.append(left[left_pointer])left_pointer += 1else:result.append(right[right_pointer])right_pointer += 1result += left[left_pointer:]result += right[right_pointer:]return result?
轉載于:https://www.cnblogs.com/jiaxiaoxin/p/10848119.html
總結
以上是生活随笔為你收集整理的python实现归并排序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数字电子技术之逻辑函数的化简及表示
- 下一篇: 你还为数学建模模型代码实现而烦恼吗?一文