; ;

算法---之插入排序

插入排序

解释来自百度百科

“插入排序是指在待排序的元素中,假设前面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)

  

 

posted @   做梦的人-  阅读(30)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示