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获取脚本所在目录的正确方法
Apr 15 Python
Python的组合模式与责任链模式编程示例
Feb 02 Python
基于Python对象引用、可变性和垃圾回收详解
Aug 21 Python
Python3实现爬取简书首页文章标题和文章链接的方法【测试可用】
Dec 11 Python
Django实现微信小程序的登录验证功能并维护登录态
Jul 04 Python
基于python实现自动化办公学习笔记(CSV、word、Excel、PPT)
Aug 06 Python
python被修饰的函数消失问题解决(基于wraps函数)
Nov 04 Python
Python字节单位转换实例
Dec 05 Python
关于tf.nn.dynamic_rnn返回值详解
Jan 20 Python
Spring Boot中使用IntelliJ IDEA插件EasyCode一键生成代码详细方法
Mar 20 Python
django 利用Q对象与F对象进行查询的实现
May 15 Python
python变量的作用域是什么
May 26 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生成html分页列表的代码
2007/03/18 PHP
浅谈PHP接入(第三方登录)QQ登录 OAuth2.0 过程中遇到的坑
2017/10/13 PHP
javascript instanceof,typeof的区别
2010/03/24 Javascript
纯JS实现的批量图片预览加载功能
2011/08/14 Javascript
js 验证密码强弱的小例子
2013/03/21 Javascript
JSCode all of Brower 全局屏蔽网页右键功能 具体实现
2013/06/05 Javascript
javascript如何判断输入的url是否正确
2014/04/11 Javascript
jquery append()方法与html()方法的区别及使用介绍
2014/08/01 Javascript
JavaScript中的变量定义与储存介绍
2014/12/31 Javascript
jQuery 更改checkbox的状态,无效的解决方法
2016/07/22 Javascript
Javascript 实现计算器时间功能详解及实例(二)
2017/01/08 Javascript
JavaScript获取中英文混合字符串长度的方法示例
2017/02/04 Javascript
vue-cli如何快速构建vue项目
2017/04/26 Javascript
关于Bootstrap按钮组件消除黄框的方法
2017/05/19 Javascript
如何使用jQuery操作Cookies方法解析
2020/09/08 jQuery
vue实现点击按钮“查看详情”弹窗展示详情列表操作
2020/09/09 Javascript
nodejs+koa2 实现模仿springMVC框架
2020/10/21 NodeJs
tornado框架blog模块分析与使用
2013/11/21 Python
python中while循环语句用法简单实例
2015/05/07 Python
Python正则简单实例分析
2017/03/21 Python
python机器学习之贝叶斯分类
2018/03/26 Python
详解Django 中是否使用时区的区别
2018/06/14 Python
Python如何优雅删除字符列表空字符及None元素
2020/06/25 Python
Python面向对象多态实现原理及代码实例
2020/09/16 Python
小天鹅官方商城:LittleSwan
2017/06/16 全球购物
加拿大领先的时尚和体育零售商:Sporting Life
2019/12/15 全球购物
酒店执行总经理岗位职责
2013/12/15 职场文书
工程班组长岗位职责
2013/12/30 职场文书
专科应届毕业生求职信
2014/06/04 职场文书
幼儿园见习报告
2014/10/30 职场文书
2014年后勤管理工作总结
2014/12/01 职场文书
质量保证书
2015/01/17 职场文书
教师个人教学总结
2015/02/11 职场文书
病危通知书样本
2015/04/17 职场文书
预备党员转正党小组意见
2015/06/01 职场文书
家访教师心得体会
2016/01/23 职场文书