Python实现插入排序

Python实现插入排序,第1张

算法思想:给定一个数组l,第一次比较索引0-0上位置的数,第二次比较索引0-1上位置的数,第二次相对第一次,只有索引1是新的数,将索引1的数依次与之前排好序的数比较,如果小于则交换位置

def insert_sort(l: list):
    n = len(l)
    if n < 2:
        return l
    for i in range(n):
        index = i
        while index - 1 >= 0 and l[index - 1] > l[index]:
            """
            第一轮循环:index=0,index-1不满足,不走while
            第二轮循环,index=1,满足走while,比较列表索引0和索引1上的值,如果索引1值小于索引0,则交换变量
            index-=1,跳出while
            第三轮循环,同上
            """
            l[index], l[index - 1] = l[index - 1], l[index]
            index -= 1
    return l


if __name__ == '__main__':
    l = [7, 3, 5, 2, 5, 3, 6, 10]
    # [2, 3, 3, 5, 5, 6, 7, 10]
    print(insert_sort(l))

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/570492.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-09
下一篇 2022-04-09

发表评论

登录后才能评论

评论列表(0条)

保存