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调用java模块SmartXLS和jpype修改excel文件的方法
Apr 28 Python
python的Tqdm模块的使用
Jan 10 Python
使用Python制作自动推送微信消息提醒的备忘录功能
Sep 06 Python
Python任意字符串转16, 32, 64进制的方法
Jun 12 Python
python与C、C++混编的四种方式(小结)
Jul 15 Python
python3 中的字符串(单引号、双引号、三引号)以及字符串与数字的运算
Jul 18 Python
Win10 安装PyCharm2019.1.1(图文教程)
Sep 29 Python
如何解决django-celery启动后迅速关闭
Oct 16 Python
python except异常处理之后不退出,解决异常继续执行的实现
Apr 25 Python
python能做哪些生活有趣的事情
Sep 09 Python
安装并免费使用Pycharm专业版(学生/教师)
Sep 24 Python
教你使用Python获取QQ音乐某个歌手的歌单
Apr 03 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
DedeCMS dede_channeltype表字段注释
2010/04/07 PHP
PHP中$_FILES的使用方法及注意事项说明
2014/02/14 PHP
php解决约瑟夫环示例
2014/04/09 PHP
PHP实现上传多图即时显示与即时删除的方法
2017/05/09 PHP
实例讲解PHP页面静态化
2018/02/05 PHP
PHP的PDO预定义常量讲解
2019/01/24 PHP
基于JQuery的动态删除Table表格的行和列的代码
2011/05/12 Javascript
将中国标准时间转换成标准格式的代码
2014/03/20 Javascript
JavaScript实现的MD5算法完整实例
2016/02/02 Javascript
AngularJS教程之环境设置
2016/08/16 Javascript
js绘制购物车抛物线动画
2020/11/18 Javascript
javascript数据类型详解
2017/02/07 Javascript
javascript内存分配原理实例分析
2017/04/10 Javascript
Vuex和前端缓存的整合策略详解
2017/05/09 Javascript
AngularJS 中ui-view传参的实例详解
2017/08/25 Javascript
详解Node 定时器
2018/02/26 Javascript
Node.JS段点续传:Nginx配置文件分段下载功能的实现方法
2018/03/12 Javascript
JavaScript制作3D旋转相册
2020/08/02 Javascript
Python+OpenCV人脸检测原理及示例详解
2020/10/19 Python
Python3爬虫爬取百姓网列表并保存为json功能示例【基于request、lxml和json模块】
2018/12/05 Python
通过python的matplotlib包将Tensorflow数据进行可视化的方法
2019/01/09 Python
用Python生成HTML表格的方法示例
2020/03/06 Python
Python3.x+pyqtgraph实现数据可视化教程
2020/03/14 Python
Windows+Anaconda3+PyTorch+PyCharm的安装教程图文详解
2020/04/03 Python
Python根据字符串调用函数过程解析
2020/11/05 Python
css3实现input输入框颜色渐变发光效果代码
2014/04/02 HTML / CSS
俄罗斯最大的消费电子连锁零售商:Mvideo
2017/06/25 全球购物
全球摩托车装备领导者:RevZilla
2017/09/04 全球购物
伦敦一家西班牙童装精品店:La Coqueta
2018/02/02 全球购物
Bravofly德国:预订廉价航班和酒店
2019/09/22 全球购物
Feelunique中文官网:欧洲最大化妆品零售电商
2020/07/10 全球购物
遥感技术与仪器求职信
2014/02/22 职场文书
不遵守课堂纪律的检讨书
2014/09/24 职场文书
生死抉择观后感
2015/06/09 职场文书
会计入职心得体会
2016/01/22 职场文书
mysql的数据压缩性能对比详情
2021/11/07 MySQL