归并排序
1 import random 2 3 4 def merge(mer_l, mer_r): 5 new_list = [] 6 i = 0 7 j = 0 8 len_l = len(mer_l) 9 len_r = len(mer_r) 10 while len_l > i and len_r > j: 11 if mer_l[i] < mer_r[j]: 12 new_list.append(mer_l[i]) 13 i += 1 14 else: 15 new_list.append(mer_r[j]) 16 j += 1 17 while i < len_l: 18 new_list.append(mer_l[i]) 19 i += 1 20 while j < len_r: 21 new_list.append(mer_r[j]) 22 j += 1 23 return new_list 24 25 26 def _merge_sort(li, low, mid, high): 27 if high > low: 28 _merge_sort(li, low, (low+mid)//2, mid) 29 _merge_sort(li, mid+1, (mid+1+high)//2, high) 30 li[low:high+1] = merge(li[low:mid+1], li[mid+1:high+1]) 31 32 33 def merge_sort(li): 34 high = len(li) - 1 35 low = 0 36 mid = (high + low)//2 37 _merge_sort(li, low, mid, high) 38 39 40 if __name__ == '__main__': 41 li3 = list(range(100)) 42 random.shuffle(li3) 43 print(li3) 44 merge_sort(li3) 45 print(li3)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人