Python排序搜索基本算法之插入排序实例分析


Posted in Python onDecember 11, 2017

本文实例讲述了Python排序搜索基本算法之插入排序。分享给大家供大家参考,具体如下:

插入排序生活中非常常见,打扑克的时候人的本能就在用插入排序:把抽到的一张插入到手上牌的正确位置上。有两种插入排序方法,一种基于比较,另一种基于交换。代码如下:

1.基于比较的插入排序:

# coding:utf-8
def insertionSort(seq):
  length=len(seq)
  for i in range(1,length):
    tmp=seq[i]
    for j in range(i,0,-1):
      if seq[j-1]>tmp:
        seq[j]=seq[j-1]
      else:
        j+=1
        break
    seq[j-1]=tmp
if __name__=='__main__':
  print("三水点靠木测试结果:")
  seq=[8,6,4,9,7,3,2,-4,0,-100,99]
  insertionSort(seq)
  print(seq)

运行结果:

Python排序搜索基本算法之插入排序实例分析

2.基于交换的插入排序:

# coding:utf-8
def insertionSort2(seq):
  length=len(seq)
  for i in range(1,length):
    for j in range(i,0,-1):
      if seq[j]<seq[j-1]:
        seq[j],seq[j-1]=seq[j-1],seq[j]
      else:
        break
if __name__=='__main__':
  print("三水点靠木测试结果:")
  seq=[3,5,9,8,4,2,1,0,-6,12,-8]
  insertionSort2(seq)
  print(seq)

运行结果:

Python排序搜索基本算法之插入排序实例分析

Python 相关文章推荐
30分钟搭建Python的Flask框架并在上面编写第一个应用
Mar 30 Python
关于反爬虫的一些简单总结
Dec 13 Python
Python学习之Django的管理界面代码示例
Feb 10 Python
PyQt5 pyqt多线程操作入门
May 05 Python
对python 合并 累加两个dict的实例详解
Jan 21 Python
解决python tkinter界面卡死的问题
Jul 17 Python
python 调用pyautogui 实时获取鼠标的位置、移动鼠标的方法
Aug 27 Python
Atom Python 配置Python3 解释器的方法
Aug 28 Python
Python爬虫爬取Bilibili弹幕过程解析
Oct 10 Python
Python MOCK SERVER moco模拟接口测试过程解析
Apr 13 Python
Pytest测试框架基本使用方法详解
Nov 25 Python
Django项目配置Memcached和Redis, 缓存选择哪个更有优势
Apr 06 Python
python实现二叉树的遍历
Dec 11 #Python
django上传图片并生成缩略图方法示例
Dec 11 #Python
使用Python的package机制如何简化utils包设计详解
Dec 11 #Python
python timestamp和datetime之间转换详解
Dec 11 #Python
Python时间戳使用和相互转换详解
Dec 11 #Python
python的exec、eval使用分析
Dec 11 #Python
Python中eval带来的潜在风险代码分析
Dec 11 #Python
You might like
世界咖啡生产者论坛呼吁:需要立即就咖啡价格采取认真行动
2021/03/06 咖啡文化
也谈 PHP 和 MYSQL
2006/10/09 PHP
PHP实现的多维数组排序算法分析
2018/02/10 PHP
PHP使用Curl实现模拟登录及抓取数据功能示例
2018/04/27 PHP
javascript控制frame,iframe的src属性代码
2009/12/31 Javascript
JavaScript 开发规范要求(图文并茂)
2010/06/11 Javascript
js 获取后台的字段 改变 checkbox的被选中的状态 代码
2013/06/05 Javascript
JQuery中extend使用介绍
2014/03/13 Javascript
node.js中的fs.createReadStream方法使用说明
2014/12/17 Javascript
jQuery中 prop() attr()使用详解
2015/05/19 Javascript
Angular发布1.5正式版,专注于向Angular 2的过渡
2016/02/18 Javascript
分享bootstrap学习笔记心得(组件及其属性)
2017/01/11 Javascript
Swiper自定义分页器使用详解
2017/12/28 Javascript
VUE基于NUXT的SSR 服务端渲染
2018/11/30 Javascript
layui实现把数据表格时间戳转换为时间格式的例子
2019/09/12 Javascript
javascript 高级语法之继承的基本使用方法示例
2019/11/11 Javascript
Vue computed 计算属性代码实例
2020/04/22 Javascript
Nodejs实现WebSocket代码实例
2020/05/19 NodeJs
Vue前端判断数据对象是否为空的实例
2020/09/02 Javascript
vant中的toast轻提示实现代码
2020/11/04 Javascript
Python脚本判断 Linux 是否运行在虚拟机上
2015/04/25 Python
Pycharm学习教程(4) Python解释器的相关配置
2017/05/03 Python
python实现简单登陆流程的方法
2018/04/22 Python
Python使用pickle模块储存对象操作示例
2018/08/15 Python
Python Cookie 读取和保存方法
2018/12/28 Python
html5使用canvas绘制太阳系效果
2014/12/15 HTML / CSS
eBay澳大利亚站:eBay.com.au
2018/02/02 全球购物
工商管理系学生的自我评价分享
2013/11/29 职场文书
九年级政治教学反思
2014/02/06 职场文书
班级德育工作实施方案
2014/02/21 职场文书
学员自我鉴定
2014/03/19 职场文书
终止或解除劳动合同及劳动关系的证明书
2014/10/06 职场文书
简历自荐信范文
2015/03/09 职场文书
旅游安全责任协议书
2016/03/22 职场文书
python编程简单几行代码实现视频转换Gif示例
2021/10/05 Python
Linux磁盘管理方法介绍
2022/06/01 Servers