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 startswith()函数与endswith函数
Sep 08 Python
scrapy爬虫实例分享
Dec 28 Python
python机器学习理论与实战(一)K近邻法
Jan 28 Python
Python字典及字典基本操作方法详解
Jan 30 Python
用Python和WordCloud绘制词云的实现方法(内附让字体清晰的秘笈)
Jan 08 Python
详解pyinstaller selenium python3 chrome打包问题
Oct 18 Python
详解Django admin高级用法
Nov 06 Python
使用python 对验证码图片进行降噪处理
Dec 18 Python
python手机号前7位归属地爬虫代码实例
Mar 31 Python
python实现斗地主分牌洗牌
Jun 22 Python
python实现数据结构中双向循环链表操作的示例
Oct 09 Python
字典算法实现及操作 --python(实用)
Mar 31 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
工厂模式在Zend Framework中应用介绍
2012/07/10 PHP
php中explode函数用法分析
2014/11/15 PHP
php实现比较两个文件夹异同的方法
2015/06/18 PHP
php将金额数字转化为中文大写
2015/07/09 PHP
PHP实现支持加盐的图片加密解密
2016/09/09 PHP
mysql查找删除重复数据并只保留一条实例详解
2016/09/24 PHP
PHP实现上传图片到 zimg 服务器
2016/10/19 PHP
PHP表单验证内容是否为空的实现代码
2016/11/14 PHP
PHP使用PDO调用mssql存储过程的方法示例
2017/10/07 PHP
在laravel中实现将查询的对象转换为多维数组的函数
2019/10/21 PHP
href下载文件根据id取url并下载
2014/05/28 Javascript
node.js开机自启动脚本文件
2014/12/24 Javascript
js实现动画特效的文字链接鼠标悬停提示的方法
2015/03/02 Javascript
微信小程序 小程序制作及动画(animation样式)详解
2017/01/06 Javascript
AngularJS的Filter的示例详解
2017/03/07 Javascript
js图片上传的封装代码
2017/08/01 Javascript
Vue 组件间的样式冲突污染
2017/08/31 Javascript
node.js 发布订阅模式的实例
2017/09/10 Javascript
React Native 通告消息竖向轮播组件的封装
2020/08/25 Javascript
JavaScript 日期时间选择器一些小结
2018/04/02 Javascript
浅谈redux, koa, express 中间件实现对比解析
2019/05/23 Javascript
python实现博客文章爬虫示例
2014/02/26 Python
详解Python中的strftime()方法的使用
2015/05/22 Python
python中的句柄操作的方法示例
2019/06/20 Python
Django 多表关联 存储 使用方法详解 ManyToManyField save
2019/08/09 Python
深入了解Python装饰器的高级用法
2020/08/13 Python
python判断字符串以什么结尾的实例方法
2020/09/18 Python
html5中valid、invalid、required的定义
2014/02/21 HTML / CSS
VSCode 自定义html5模板的实现
2019/12/05 HTML / CSS
瑞贝卡·明可弗包包官网:Rebecca Minkoff
2016/07/21 全球购物
英国网上花店:Bunches
2016/11/29 全球购物
GetYourGuide台湾:预订旅游活动、景点和旅游项目
2019/06/10 全球购物
意大利网上书店:LaFeltrinelli
2020/06/12 全球购物
党员群众路线承诺书
2014/05/20 职场文书
小区物业管理2015年度工作总结
2015/10/22 职场文书
解决mysql:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO/YES)
2021/06/26 MySQL