用python实现简单的插入排序

本文介绍了如何使用Python实现插入排序算法。通过将列表分为已排序和未排序两部分,逐步将未排序元素插入到已排序部分,确保每次插入都是正确的位置,从而最终完成排序过程。
摘要由CSDN通过智能技术生成

认为列表有两部分,一部分有序,一部分无序;有序此时默认的是第一个元素。然后用后面的无序序列中的第一个和有序序列比较,从后往前比较,看看是不是比前面的元素小,小就互换。
在这里插入图片描述

# 插入函数
# 插入排序可以看成选择排序和冒泡排序的组合,
# 放入有序队列中进行两两比较,
# (先与然第一个值比较,后往后(+1)比较)互换位置,
# 用后面无序列表中的第一个值和有序列表比较,
# 在有序列表中进行冒泡排序
# 排序排n-1次,比较n-1次(第一次就一个值,必定有序)
def insert_sort(alist):
    
    # 内部排序
    n = len(alist)
    # i用来控制每次放进有序列表的值,
    # 用后面无序列表中的第一个值和有序列表比较,
    # 等于n是因为第一个值也参与进判断,尽管第一次就一个值,必定有序
    for i in range(n):
        # print('外部:'+str(i))

        # 内部冒泡排序时,i的大小刚好是每一次把无序列表的
        # 一个数值放进有序列表后有序列表的长度,
        # 从i开始到0,每次增长-1,也就是减少1,
        # 如第一次循环,0到0之间,第一个值必定在有序列表中,
        # 第二次从1到0之间,冒泡排序比较两个值
        # 第三次2到0之间,冒泡
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值