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批量制作雷达图的实现方法
Jul 26 Python
Python抓取框架 Scrapy的架构
Aug 12 Python
Python中的日期时间处理详解
Nov 17 Python
Python命令启动Web服务器实例详解
Feb 23 Python
Python实现的redis分布式锁功能示例
May 29 Python
python 处理数字,把大于上限的数字置零实现方法
Jan 28 Python
python之信息加密题目详解
Jun 26 Python
python Dijkstra算法实现最短路径问题的方法
Sep 19 Python
python zip()函数使用方法解析
Oct 31 Python
使用python-opencv读取视频,计算视频总帧数及FPS的实现
Dec 10 Python
python opencv图像处理(素描、怀旧、光照、流年、滤镜 原理及实现)
Dec 10 Python
python 数据类型强制转换的总结
Jan 25 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写MySQL数据 实现代码
2009/06/15 PHP
PHP 删除一个目录及目录下的所有文件的函数代码
2010/05/26 PHP
用PHP代替JS玩转DOM的思路及示例代码
2014/06/15 PHP
php结合ACCESS的跨库查询功能
2015/06/12 PHP
Get中文乱码IE浏览器Get中文乱码解决方案
2013/12/26 Javascript
JS判断客户端是手机还是PC的2个代码
2014/04/12 Javascript
jquery图片滚动放大代码分享(2)
2015/08/28 Javascript
基于JavaScript代码实现pc与手机之间的跳转
2015/12/23 Javascript
利用C/C++编写node.js原生模块的方法教程
2017/07/07 Javascript
超级简易的JS计算器实例讲解(实现加减乘除)
2017/08/08 Javascript
vue.js中父组件调用子组件的内部方法示例
2017/10/22 Javascript
JavaScript页面倒计时功能完整示例
2019/05/15 Javascript
详解Vue 如何监听Array的变化
2019/06/06 Javascript
JS的时间格式化和时间戳转换函数示例详解
2020/07/27 Javascript
微信小程序实现弹幕墙(祝福墙)
2020/11/18 Javascript
Python字典操作简明总结
2015/04/13 Python
python学习教程之使用py2exe打包
2017/09/24 Python
解决Keras TensorFlow 混编中 trainable=False设置无效问题
2020/06/28 Python
python基于Kivy写一个图形桌面时钟程序
2021/01/28 Python
意大利奢侈品综合电商网站:MODES
2019/12/14 全球购物
日本最大的彩色隐形眼镜销售网站:CharmColor
2020/09/09 全球购物
请解释virtual关键字的含义
2015/06/17 面试题
马云的职业生涯规划之路
2014/01/01 职场文书
万年牢教学反思
2014/02/15 职场文书
大学社团计划书
2014/05/01 职场文书
财务管理专业求职信
2014/06/11 职场文书
陈安之励志演讲稿
2014/08/21 职场文书
2014国庆节餐厅促销活动策划方案
2014/09/16 职场文书
2014年党建工作总结
2014/11/11 职场文书
乔迁之喜答谢词
2015/01/05 职场文书
教师岗位职责
2015/02/03 职场文书
抢劫罪辩护词
2015/05/21 职场文书
消防宣传语大全
2015/07/13 职场文书
学生会工作感言
2015/08/07 职场文书
企业法律事务工作总结
2015/08/11 职场文书
幼儿园2016年感恩节活动总结
2016/04/01 职场文书