博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
进阶:python3实现 插入排序
阅读量:4614 次
发布时间:2019-06-09

本文共 551 字,大约阅读时间需要 1 分钟。

一图胜千言,插入排序的核心逻辑如下:

  • 将数据分成两半,前一半是已排好序的,后一半是待排序的
  • 每次取后一半中的第一个数,在已排序的一半中,逆序依次比较,找到要插入的位置
  • 记录插入的位置,在最后判断是否需要插入即可

757665-20190710103601025-555879138.png

实现代码:

def insertionSort(a:list):    for i in range(1,len(a)):        value = a[i]        insert_index = -1        for j in range(i-1,-1,-1):            if  value< a[j]:                a[j+1] = a[j]                insert_index = j            else:                break        if insert_index !=-1:            a[insert_index] = value        return a

思考:

为什么插入排序比冒泡排序更常用

关键在于赋值操作,冒泡排序需要3次,而插入排序只需要1次

转载于:https://www.cnblogs.com/yeni/p/11162337.html

你可能感兴趣的文章
异常处理
查看>>
/proc/uptime详解
查看>>
如何建立合适的索引?
查看>>
acwing 651. 逛画展
查看>>
Vijos P1243 生产产品 (单调队列优化DP)
查看>>
iOS常用第三方库 -转
查看>>
Android布局学习
查看>>
jQuery中事件绑定与解绑
查看>>
js原生Ajax的封装与使用
查看>>
周总结6
查看>>
PostgreSQL 务实应用(二/5)插入冲突
查看>>
一种公众号回复关键词机制
查看>>
java多线程入门学习(一)
查看>>
基于 Web 的 Go 语言 IDE - Wide 1.1.0 公布!
查看>>
nyist oj 138 找球号(二)(hash 表+位运算)
查看>>
Movidius软件手册阅读 2017-09-04
查看>>
ytu 1910:字符统计(水题)
查看>>
201671030110 姜佳宇 实验三作业互评与改进
查看>>
mysql-5.6.15 开启二进制文件
查看>>
python的沙盒环境--virtualenv
查看>>