Python实现的插入排序算法原理与用法实例分析


Posted in Python onNovember 22, 2017

本文实例讲述了Python实现的插入排序算法原理与用法。分享给大家供大家参考,具体如下:

插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法

插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将最后一个元素除外(让数组多一个空间才有插入的位置),而第二部分就只包含这一个元素(即待插入元素)。在第一部分排序完成后,再将这个最后元素插入到已排好序的第一部分中。

插入排序的基本思想是:每步将一个待排序的纪录,按其关键码值的大小插入前面已经排序的文件中适当位置上,直到全部插入完为止。

具体代码如下:

#-*- coding: UTF-8 -*-
import numpy as np
def InsertSort(a):
  for i in xrange(1,a.size):
    for j in xrange(i,0, -1):
      if a[j-1] > a[j]:
        a[j-1] , a[j] = a[j], a[j-1]
      else:
        break
if __name__ == '__main__':
  a = np.random.randint(0, 10, size = 10)
  print "Before sorting..."
  print "---------------------------------------------------------------"
  print a
  print "---------------------------------------------------------------"
  print "After sorting..."
  InsertSort(a)
  print "---------------------------------------------------------------"
  print a
  print "---------------------------------------------------------------"

运行结果:

Python实现的插入排序算法原理与用法实例分析

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
基于Python的XSS测试工具XSStrike使用方法
Jul 29 Python
python生成excel的实例代码
Nov 08 Python
Python模拟随机游走图形效果示例
Feb 06 Python
Python将一个CSV文件里的数据追加到另一个CSV文件的方法
Jul 04 Python
Python3爬取英雄联盟英雄皮肤大图实例代码
Nov 14 Python
Python中shapefile转换geojson的示例
Jan 03 Python
Python txt文件加入字典并查询的方法
Jan 15 Python
django 控制页面跳转的例子
Aug 06 Python
Python 爬虫实现增加播客访问量的方法实现
Oct 31 Python
python opencv 检测移动物体并截图保存实例
Mar 10 Python
python脚本框架webpy模板赋值实现
Nov 20 Python
Python如何利用pandas读取csv数据并绘图
Jul 07 Python
Python实现的选择排序算法原理与用法实例分析
Nov 22 #Python
Python实现桶排序与快速排序算法结合应用示例
Nov 22 #Python
解决python3中自定义wsgi函数,make_server函数报错的问题
Nov 21 #Python
python不换行之end=与逗号的意思及用途
Nov 21 #Python
python 打印直角三角形,等边三角形,菱形,正方形的代码
Nov 21 #Python
pycharm远程调试openstack代码
Nov 21 #Python
Pycharm远程调试openstack的方法
Nov 21 #Python
You might like
PHP版自动生成文章摘要
2008/07/23 PHP
PHP clearstatcache()函数详解
2010/03/02 PHP
php gd2 上传图片/文字水印/图片水印/等比例缩略图/实现代码
2010/05/15 PHP
PHP 读取Postgresql中的数组
2013/04/14 PHP
php实现解析xml并生成sql语句的方法
2018/02/03 PHP
面向对象Javascript核心支持代码分享
2012/05/23 Javascript
extjs 分页使用jsp传递数据示例
2014/07/29 Javascript
Javascript检查图片大小不要让大图片撑破页面
2014/11/04 Javascript
jQuery简单实现仿京东商城的左侧菜单效果代码
2015/09/09 Javascript
jQuery mobile在页面加载时添加加载中效果 document.ready 和window.onload执行顺序比较
2016/07/14 Javascript
JavaScript简单生成 N~M 之间随机数的方法
2017/01/13 Javascript
Angular2.0/4.0 使用Echarts图表的示例代码
2017/12/07 Javascript
关于vue.js中实现方法内某些代码延时执行
2019/11/14 Javascript
python 计算文件的md5值实例
2017/01/13 Python
Python实现App自动签到领取积分功能
2018/09/29 Python
python 利用panda 实现列联表(交叉表)
2021/02/06 Python
使用 css3 实现圆形进度条的示例
2017/07/05 HTML / CSS
纯css3使用vw和vh实现自适应的方法
2018/02/09 HTML / CSS
Html5新增标签与样式及让元素水平垂直居中
2019/07/11 HTML / CSS
HolidayLettings英国:预订最好的度假公寓、别墅和自助式住宿
2019/08/27 全球购物
新浪微博实习心得体会
2014/01/27 职场文书
汉语言文学毕业生自荐信范文
2014/03/24 职场文书
代领学位证书毕业证书委托书
2014/09/30 职场文书
2014年个人委托书范本
2014/10/13 职场文书
信访稳定工作汇报
2014/10/27 职场文书
英语教师个人总结
2015/02/09 职场文书
刑事法律意见书
2015/06/04 职场文书
2015暑期社会实践调查报告
2015/07/14 职场文书
2016教师廉洁从教心得体会
2016/01/13 职场文书
2016年小学推普宣传周活动总结
2016/04/06 职场文书
应届生们该怎么书写求职信?
2019/07/05 职场文书
餐厅如何利用“营销策略”扭转亏本局面
2019/10/15 职场文书
解决golang在import自己的包报错的问题
2021/04/29 Golang
Python 如何安装Selenium
2021/05/06 Python
bootstrapv4轮播图去除两侧阴影及线框的方法
2022/02/15 HTML / CSS
Mysql查询时间区间日期列表,不会由于数据表数据影响
2022/04/19 MySQL