算法---之插入排序
插入排序
解释来自百度百科
“插入排序是指在待排序的元素中,假设前面n-1(其中n>=2)个数已经是排好顺序的,现将第n个数插到前面已经排好的序列中,然后找到合适自己的位置,使得插入第n个数的这个序列也是排好顺序的。按照此法对所有元素进行插入,直到整个序列排为有序的过程,称为插入排序。”
可以参考菜鸟的图示:
https://www.runoob.com/data-structures/insertion-sort.html
我理解就是纸牌玩法,在玩纸牌的时候,我们会选取一个数字,然后依次对牌进行一个排序,所以插入排序,更像是对纸牌排序
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | def inser_sort(li): #第一个循环遍历,是表示摸牌的下标数 for i in range ( 1 , len (li)): tmp = li[i] #把牌存下来, j = i - 1 #指的是手里牌的下标,每摸一次牌,就应该是长度减掉1就是下标 #现在需要持续摸牌,什么时候结束,牌摸完了也就是j小于0,, while j> = 0 and li[j]>tmp : #表示还在摸牌,li[j]大于tmp,说明是比现在手上的牌要大,进行移动 #摸牌时大的往左移动,,小的数就往右移动 li[j + 1 ] = li[j] #改变下标 j - = 1 #牌少了一张,所以要减坐标 li[j + 1 ] = tmp #把牌的位置进行调换 print (li) lists = [ 9 , 7 , 4 , 1 , 3 , 2 , 6 , 5 ] inser_sort(lists) |
作者:做梦的人(小姐姐) 出处:https://www.cnblogs.com/chongyou/ 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。 如果文中有什么错误,欢迎指出。以免更多的人被误导。 微信号:18582559217 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架