lowB三人组代码示例
冒泡排序:列表在内存重只存一份,所以不需要重复赋值 import random from timewrap import * #时间装饰器
# 初级版本 @cal_time def bubble_sort(li): for i in range(len(li)-1): #循环的躺数为总的躺数-1,因为最后一步没必要走 # i 表示趟数 # 第 i 趟时: 无序区:(0,len(li) - i) for j in range(len(li) - i - 1): #循环i次之后就还有总长度-1-i次 if li[j] > li[j+1]: #如果低j个数比j+1个数还要大,说明j在j+1的上边 li[j], li[j+1] = li[j+1], li[j] #交换位置
# 优化版,和上边的基本一样,只是在他的基础上增加了一层判断,如果刚刚开始列表就是有序的则不需要进行排序 @cal_time def bubble_sort_2(li): for i in range(len(li)-1): # i 表示趟数 # 第 i 趟时: 无序区:(0,len(li) - i) change = False for j in range(len(li) - i - 1): if li[j] > li[j+1]: li[j], li[j+1] = li[j+1], li[j] change = True #排序成功返回True if not change: #如果没有change的值代表没有排序, return li = list(range(10000)) #随机产生10000个数 # random.shuffle(li) #打乱后的结果 # print(li) bubble_sort_2(li) #没有打乱排序,直接走if not change: print(li)
#选择排序 import random from timewrap import * #时间装饰器,用来判断函数执行的时间长度 @cal_time def select_sort(li): for i in range(len(li)-1): # i 表示趟数,也表示无序区开始的位置 min_loc = i # 最小数的位置 的到一个最小值 for j in range(i+1, len(li)): #此时i就是最小值 if li[j] < li[min_loc]: #如果li[j]<li[min_loc] 说明j就是最小值 min_loc = j li[i], li[min_loc] = li[min_loc], li[i] #交换位置,最小值放在前边 li = list(range(10000)) #随机产生1000个数字 random.shuffle(li) #打乱 print(li) select_sort(li) #调用函数,排序 print(li)
#插入排序 import random from timewrap import * @cal_time def insert_sort(li): for i in range(1, len(li)): # i 表示无序区第一个数 tmp = li[i] # 摸到的牌 随机去到一支歌 j = i - 1 # j 指向有序区最后位置 while li[j] > tmp and j >= 0: # 有序区最下的值 #循环终止条件: 1. li[j] <= tmp; 2. j == -1 li[j+1] = li[j] j -= 1 li[j+1] = tmp li = list(range(10000)) random.shuffle(li) print(li) insert_sort(li) print(li)
本文来自博客园,作者:一石数字欠我15w!!!,转载请注明原文链接:https://www.cnblogs.com/52-qq/p/8399307.html
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)