归并排序
平均时间复杂度:O(nlogn)
最佳时间复杂度:O(n)
最差时间复杂度:O(nlogn)
空间复杂度:O(n)
排序方式:In-place
稳定性:稳定
def merge_sort(num1, num2): # 按大小合并数组 tmp = [] low = 0 high = 0 while low < len(num1) and high < len(num2): if num1[low] < num2[high]: tmp.append(num1[low]) low = low + 1 else: tmp.append(num2[high]) high = high + 1 if low == len(tmp): for i in num2[high:]: tmp.append(i) else: for i in num1[low:]: tmp.append(i) return tmp def merge(list): # 划分数组 if len(list) <= 1: return list mid = len(list) // 2 left = merge(list[:mid]) right = merge(list[mid:]) return merge_sort(left, right) if __name__ == '__main__': list = [4, 1, 2, 3] num = merge(list) print(num)
本文作者:MiYol
本文链接:https://www.cnblogs.com/miyol/p/16721391.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步