千家信息网

如何使用python实现插入排序算法

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,小编给大家分享一下如何使用python实现插入排序算法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!插入排序通俗理解:插入排序是从数组中取出一个元素与其前面的一个或多个元素进行逐一比
千家信息网最后更新 2026年11月03日如何使用python实现插入排序算法

小编给大家分享一下如何使用python实现插入排序算法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

插入排序通俗理解:插入排序是从数组中取出一个元素与其前面的一个或多个元素进行逐一比较,依照大小将其插入到合适的位置。要注意区分和选择排序的差别:选择排序排序之选择排序和插入排序实际上是人为地把数组切分为前后两半部分,选择排序中前半部分的元素始终是排序好的,逐个拿后半部分的每一个元素与后半部分数组中'0'索引位置的元素比较大小交换位置,而插入排序是在每次遍历数组的时候,在后半部分数组元素中取一个元素,与前半部分的元素逐个比较,比某个元素大,则放在其后面,比某个元素小,则放在其前面,这里比某个值大或者小是通过一次一次地往前走而比较出来的。如果觉得上述描述不甚清晰,下面的示例可帮助进一步理解:
def insert_sort(alist):    '''插入排序'''    length = len(alist)    # 默认第一个元素不动,从索引为1的元素开始与前面元素比较    for i in range(1,length):        print(i)        for j in range(i,0,-1): # 倒叙逐一取range中的值            if alist[j] < alist[j-1]:                alist[j-1],alist[j] = alist[j],alist[j-1]        # 输出此次比较后的数组        print(alist)
return alist

if __name__ == '__main__': alist = [3,2,1,7,6,5,3] print(insert_sort(alist))


代码流程:首先获取列表长度,外for循环循环次数为列表长度减1,内循环理论上每次循环的次数是逐一增加的,因为前半部分数组中的元素每经过一次完全的遍历就多一个,而后半部分恰恰相反,每次减少一个。下面通过结果来看看具体是怎么实现的:

1 #第一次结果[2, 3, 1, 7, 6, 5, 3]2 #第二次结果[1, 2, 3, 7, 6, 5, 3]3 #第三次结果[1, 2, 3, 7, 6, 5, 3]4 #第四次结果[1, 2, 3, 6, 7, 5, 3]5 #第五次结果[1, 2, 3, 5, 6, 7, 3]6 #第六次结果[1, 2, 3, 3, 5, 6, 7]
# 最终结果[1, 2, 3, 3, 5, 6, 7]


结果分析:当第一轮遍历时,原数组alist[3,2,1,7,6,5,3]中的1索引值为2,与0索引的值3进行比较,小于则进行交换,得到此次的最终结果[2, 3, 1, 7, 6, 5, 3];第二次遍历,2索引的值1小于1索引的值3,交换得到[2, 1, 3, 7, 6, 5, 3],现在还没有结束,因为内for循环的循环列表为[2,1,-1],接着1索引的值1小于0索引的值2,进行交换,此时才得到此轮的最终结果[1, 2, 3, 7, 6, 5, 3],以此类推可实现最终排序。

复杂度:插入排序复杂度为n**2,其最好最坏均为n方,无论原始数组是否有序,总要拿着后面的每一个元素与其前面的所有元素逐一比较大小,因为你不能保证所取的元素比其前面的每个元素都小。

看完了这篇文章,相信你对"如何使用python实现插入排序算法"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

元素 排序 结果 数组 索引 循环 半部 选择 位置 前半部 大小 算法 复杂 复杂度 次数 篇文章 长度 原始 合适 有序 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 保险科技 互联网保险 科技互联网政务服务 智能科技公司是互联网公司吗 北京互联网科技公司 电子科技大学互联网 有木互联网科技 赫美联合互联网科技 国外互联网科技网站 互联网实体化科技化 现代科技和互联网有关系吗 阿里巴巴算科技企业还是互联网 互联网经济与金融科技 注册互联网科技公司经营范围大全 银川新华互联网科技学校联系电话 互联网科技公司营业执照怎么办理 上海京穆互联网科技有限公司 沐思想互联网科技有限公司 梅州GM互联网络科技有限公司 互联网科技融合创新 互联网科技接地气 涨乐互联网科技 远拓互联网科技 西藏七维空间互联网科技有限公司 科技与互联网哪个更好 高科技互联网发展前景如何 广东工业互联网大赛深圳学泰科技 黑云互联网科技有限公司 第三届互联网大会安防黑科技 互联网对科技影响 颐高云石互联网科技
0