Python中使用插入排序算法的简单分析与代码示例


Posted in Python onMay 04, 2016

问题描述

将一组随机排列的数字重新按照从小到大的顺序排列。

插入算法

每次从数组中取一个数字,与现有数字比较并插入适当位置。

如此重复,每次均可以保持现有数字按照顺序排列,直到数字取完,即排序成功。

这很像打牌时的抓牌情况,

第一个条件:保持手上的牌的顺序是正确的
第二个条件:每次抓到新的牌均按照顺序插入手上的牌中间。
保证这两条不变,那么无论抓了几张牌,最后手上的牌都是依照顺序排列的。

Python 实现:

def insertion_sort(n):
 if len(n) == 1:
  return n
 b = insertion_sort(n[1:])
 m = len(b)
 for i in range(m):
  if n[0] <= b[i]:
   return b[:i]+[n[0]]+b[i:]
 return b + [n[0]]

   
另一个版本:

def insertion_sort(lst):
 if len(lst) == 1:
  return lst

 for i in xrange(1, len(lst)):
  temp = lst[i]
  j = i - 1
  while j >= 0 and temp < lst[j]:
   lst[j + 1] = lst[j]
   j -= 1
  lst[j + 1] = temp
 return lst
Python 相关文章推荐
详解Django缓存处理中Vary头部的使用
Jul 24 Python
Python实现将DOC文档转换为PDF的方法
Jul 25 Python
TensorFlow实现RNN循环神经网络
Feb 28 Python
Python多继承顺序实例分析
May 26 Python
python调用摄像头拍摄数据集
Jun 01 Python
Python flask框架post接口调用示例
Jul 03 Python
python中使用while循环的实例
Aug 05 Python
python每5分钟从kafka中提取数据的例子
Dec 23 Python
Python 给下载文件显示进度条和下载时间的实现
Apr 02 Python
Anaconda配置pytorch-gpu虚拟环境的图文教程
Apr 16 Python
Python使用plt.boxplot() 参数绘制箱线图
Jun 04 Python
Python使用Chrome插件实现爬虫过程图解
Jun 09 Python
Python中函数参数设置及使用的学习笔记
May 03 #Python
解析Mac OS下部署Pyhton的Django框架项目的过程
May 03 #Python
Python使用urllib2模块抓取HTML页面资源的实例分享
May 03 #Python
Python中字符串的格式化方法小结
May 03 #Python
Python实现约瑟夫环问题的方法
May 03 #Python
Python实现堆排序的方法详解
May 03 #Python
python web框架学习笔记
May 03 #Python
You might like
关于文本留言本的分页代码
2006/10/09 PHP
PHP+Mysql实现多关键字与多字段生成SQL语句的函数
2014/11/05 PHP
全面解析PHP面向对象的三大特征
2017/06/10 PHP
php实现获取近几日、月时间示例
2019/07/06 PHP
jquery之Document元素选择器篇
2008/08/14 Javascript
Three.js学习之Lamber材质和Phong材质
2016/08/04 Javascript
js制作支付倒计时页面
2016/10/21 Javascript
JS限制条件补全问题实例分析
2016/12/16 Javascript
从vue基础开始创建一个简单的增删改查的实例代码(推荐)
2018/02/11 Javascript
vue请求本地自己编写的json文件的方法
2019/04/25 Javascript
mpvue 项目初始化及实现授权登录的实现方法
2020/07/20 Javascript
[01:14]英雄,所敬略同——2018完美盛典宣传视频
2018/12/05 DOTA
Python 正则表达式(转义问题)
2014/12/15 Python
Python合并多个装饰器小技巧
2015/04/28 Python
介绍Python中内置的itertools模块
2015/04/29 Python
Python获取邮件地址的方法
2015/07/10 Python
Python使用中文正则表达式匹配指定中文字符串的方法示例
2017/01/20 Python
使用numpy和PIL进行简单的图像处理方法
2018/07/02 Python
python 将字符串中的数字相加求和的实现
2019/07/18 Python
Django框架模型简单介绍与使用分析
2019/07/18 Python
python定义具名元组实例操作
2021/02/28 Python
css3.0 图形构成实例练习一
2013/03/19 HTML / CSS
amazeui 验证按钮扩展的实现
2020/08/21 HTML / CSS
全球航班旅行搜索网站:Cheapflights
2017/05/19 全球购物
瑞典网上购买现代和复古家具:Reforma
2019/10/21 全球购物
装潢设计实习自我鉴定
2013/09/19 职场文书
企划专员岗位职责
2013/12/09 职场文书
商场消防演习方案
2014/02/12 职场文书
店面销售职位的职责
2014/03/09 职场文书
双创工作实施方案
2014/03/26 职场文书
医院搬迁方案
2014/06/14 职场文书
父亲节活动策划方案
2014/08/24 职场文书
万里长城导游词
2015/01/30 职场文书
2015年七夕情人节活动方案
2015/05/06 职场文书
2019年警察入党转正申请书最新范文
2019/09/03 职场文书
导游词之湖州-太湖
2019/10/11 职场文书