博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
常用排序算法:直接插入排序
阅读量:6230 次
发布时间:2019-06-21

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

算法思路

插入排序就跟我们打扑克抽牌是一样的形式,每次新抽的牌插入到已有的有序牌中,是牌始终保持有序状态,例如[1,3, 2,4,0] 数组,先将1作为起始牌,下一张牌为3,第一趟完成后变成[1, 3]有序数组和[2,4,0]无序数组,接下来插入2,有序数组变成[1,2,3],无序数组变成[4,0],以此类推知道将所有的无序数组都插入完毕就能完成排序操作。

插入排序算法适用于少量数据的排序,时间复杂度为 O(n^2)。是一种稳定的排序方法。

代码实现

def insert_sort(nums):    for i in range(1,len(nums)):  # 无序区[i:]        temp = nums[i]  # 无序区的第一个数        j = i - 1  # 有序区的最后一个        while j >= 0 and nums[j] > temp:  # 执行插入操作            nums[j+1] = nums[j]             j -= 1        nums[j+1] = temp        print(nums)insert_sort([1,3, 2,4,0])# [1, 3, 2, 4, 0]# [1, 2, 3, 4, 0]# [1, 2, 3, 4, 0]# [0, 1, 2, 3, 4]

 

转载于:https://www.cnblogs.com/FanMLei/p/10500999.html

你可能感兴趣的文章
谷歌浏览器不能通过页面打开摄像头的处理
查看>>
mysql+heartbeat双主高可用
查看>>
输入框字数统计(通过键盘输入和拷贝粘贴皆可)
查看>>
Qt笔记(1)连接 SQL Server 数据库
查看>>
记一次使用官方zabbix官方模板监控redis自己犯的错
查看>>
ASP.NET CS文件中输出JavaScript脚本的3种方法以及区别
查看>>
mysql 分隔某个字段
查看>>
《从零开始学Swift》学习笔记(Day 17)——Swift中数组集合
查看>>
traceroute路由追踪
查看>>
Bacula笔记
查看>>
我的友情链接
查看>>
svn merge以及Unknown action received: skipped conflicted path冲突解决
查看>>
CSS: the different of using CSS between @import and link
查看>>
f2fs 系列之七:page cache相关操作和接口
查看>>
马士兵教学语录
查看>>
ubuntu server 13.10修改引导等待时间与配置更新源
查看>>
leetCode 121. Best Time to Buy and Sell Stock 数组
查看>>
Jquery学习笔记-过滤选择器
查看>>
Android 一个apk多个ICON执行入口
查看>>
我的友情链接
查看>>