冒泡排序
排序算法很多:
https://www.runoob.com/w3cnote/ten-sorting-algorithm.html
# 冒泡排序:1.外循环 2.内循环 3.内循环需要把已经循环过的不再循环了
#一维数组排序
1 2 3 4 5 6 | l = [ 2 , 5 , 12 , 352 , 1 , 23 , 35 , 63 , 5 , 2 ] # 0-9 for i in range ( len (l) - 1 ): #这个是控制总共需要多少趟 for j in range ( len (l) - 1 - i): #这个循环是控制交换的 9 if l[j] > l[j + 1 ]: l[j],l[j + 1 ] = l[j + 1 ],l[j] print (l) |
注意:
1.多少趟,-1是因为外循环10个元素,其实只需要循环9次就循环完了--可理解为循环总长度
2.内循环-1也是因为交换循环的时候,从0开始的,等于长度会字段长度溢出,-i是因为外循环过的数,最大的已经排在了最后面了,就不用再排序了,节省时间可以---可理解为循环元素
3.所以第三步区元素内容的时候要用第二轮循环的j而不是i
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | #二维数组排序 d = { '行者无疆' : 246 , '王三侠' : 210 , '大亮' : 128 , '毛多锁' : 418 , '追~落日' : 3.21 , '小文' : 416 , '瑞峰' : 22.13 , '尤文奎Alex' : 138 , '阿梁' : 167 , '山峰' : 0 , 'David' : 350 , '胖胖球' : 68.16 , '幸福哥' : 100 , '梁明' : 350 , '郝明明' : 64 , '赵宗来' : 136.32 , '平民之女' : 9.66 , '王俊兵' : 65 , '祁棒棒' : 79.24 , '陈陈' : 20 , '兔兔' : 49 , '小了白了兔' : 55 , '高娃' : 100.7 , '漠然' : 139 , '心语' : 216 , '王成' : 183 , '陈卫亮' : 141.75 } data1 = d.items() data = list (d.items()) print (data1) print ( type (data1)) for i in range ( len (data) - 1 ): #这个是控制总共需要多少趟 for j in range ( len (data) - 1 - i): #这个循环是控制交换的 9 if data[j][ - 1 ] < data[j + 1 ][ - 1 ]: data[j],data[j + 1 ] = data[j + 1 ],data[j] count = 1 #二维数组循环 for name,km in data: print ( '%s. %s %s' % (count,name,km)) count + = 1 |
重点和区别再
1 | if data[j][ - 1 ] < data[j + 1 ][ - 1 ]: |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)