
十大排序算法之三:插入排序(Python)
发布日期:2021-05-08 01:39:59
浏览次数:7
分类:精选文章
本文共 820 字,大约阅读时间需要 2 分钟。
一、插入排序简介
插入排序之所以叫插入排序,是因为它的排序方式是不断从未排序序列中取出一个数,插入到已排序序列的合适位置。就像是数组插入一样,需要不断的移动数据,如果要插入的这个数是在已排序的序列中间的话,就需要从中间往后的数据依次后后移一个位置,给新插入的元素腾位置。它的原理是先构建一个有序序列,对于未排序数据,在已排序序列中从后向前扫面,找到对应位置并且插入。
二、插入排序步骤
1:首先把序列中的第一个元素看作是已排序序列,把第二个元素一直到最后一个元素看作是未排序序列。 2:从头到尾依次扫描未排序序列,将扫描到的元素插入到有序序列的合适位置。(如果待插入的元素与有序序列中的某个元素相等,则将待插入元素插入到相等元素的后面)那么:怎么将扫描到的元素 a 插入到有序序列的合适位置呢?
这就需要我们从尾到头依次扫描已排序序列,让a依次和它们比较,如果他它们大于a,就后移一个单位。以此类推,直到找到合适的位置。三、代码实现
def InsertionSort(arr): for i in range(len(arr)): current=arr[i] #用current把a[i]的值临时存下来,要不然之后比较数据往后移动时会把arr[i]的值覆盖掉 perIndex=i-1 while perIndex>=0 and arr[perIndex]>current: arr[perIndex+1]=arr[perIndex] perIndex -= 1 arr[perIndex+1]=current return arrif __name__=='__main__': array=[3,44,38,5,15,36,46,2,48,19] print(InsertionSort(array))
发表评论
最新留言
表示我来过!
[***.240.166.169]2025年03月25日 03时46分50秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
六、Numpy的使用(详解)
2019-03-05
python爬虫——代理IP
2019-03-05
二、bootstrap4基础(flex布局)
2019-03-05
三、案例:留言板 & url.parse()
2019-03-05
Python中的filter()函数!!!1
2019-03-05
(新手小白必学!)用Python设计和实现聪明的尼姆游戏(人机对战)!!!!
2019-03-05
LeetCode:283. 移动零!!!1
2019-03-05
Python实验26:计算文件MD5值
2019-03-05
端口探测
2019-03-05
LeetCode:28. 实现 strStr()——————简单
2019-03-05
java 中 private default protected public 范围
2019-03-05
LeetCode:697. 数组的度————简单
2019-03-05
LeetCode:1052. 爱生气的书店老板————中等
2019-03-05
C语言的6大基本数据类型!(学习C语言小白必备!!)
2019-03-05
红黑树学习
2019-03-05
vue中导入导入 Mint-UI的注意事项
2019-03-05
Vue——mock模拟数据的使用
2019-03-05
Nginx配置反向代理与负载均衡
2019-03-05
高阶函数reduce
2019-03-05
Lionheart万汇:布林线双底形态分析技巧
2019-03-05