• 算法之插入排序 做梦的人


    插入排序

    解释来自百度百科

    “插入排序是指在待排序的元素中,假设前面n-1(其中n>=2)个数已经是排好顺序的,现将第n个数插到前面已经排好的序列中,然后找到合适自己的位置,使得插入第n个数的这个序列也是排好顺序的。按照此法对所有元素进行插入,直到整个序列排为有序的过程,称为插入排序。”

    可以参考菜鸟的图示:

    https://www.runoob.com/data-structures/insertion-sort.html

    我理解就是纸牌玩法,在玩纸牌的时候,我们会选取一个数字,然后依次对牌进行一个排序,所以插入排序,更像是对纸牌排序

    代码

    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)
    

      

  • 相关阅读:
    高亮表格行或列
    点击表格获取表格行或列索引
    文本框仅可接收decimal
    实现表格自动计算
    实现一个超简单的开关
    Nginx反向代理中proxy_set_header参数说明
    两个目录中,删除其中一个目录中同名文件的做法
    监控某个目录是否被更改
    centos下升级git版本的操作记录
    linux下core file size设置笔记
  • 原文地址:https://www.cnblogs.com/chongyou/p/16113671.html
Copyright © 2020-2023  润新知