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 os模块中的isfile()和isdir()函数均返回false问题解决方法
Feb 04 Python
Python中不同进制互相转换(二进制、八进制、十进制和十六进制)
Apr 05 Python
Python实现登录人人网并抓取新鲜事的方法
May 11 Python
Python获取某一天是星期几的方法示例
Jan 17 Python
基于Python pip用国内镜像下载的方法
Jun 12 Python
pandas pivot_table() 按日期分多列数据的方法
Nov 16 Python
python tkinter库实现气泡屏保和锁屏
Jul 29 Python
Flask框架钩子函数功能与用法分析
Aug 02 Python
Python字符串hashlib加密模块使用案例
Mar 10 Python
Python读取二进制文件代码方法解析
Jun 22 Python
Python更改pip镜像源的方法示例
Dec 01 Python
python - asyncio异步编程
Apr 06 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下关于Cannot use a scalar value as an array的解决办法
2010/08/08 PHP
ThinkPHP登录功能的实现方法
2014/08/20 PHP
PHP简单选择排序算法实例
2015/01/26 PHP
PHP实现的购物车类实例
2015/06/17 PHP
php实现面包屑导航例子分享
2015/12/19 PHP
PHP匿名函数和use子句用法实例
2016/03/16 PHP
PHP获取网站中各文章的第一张图片的代码示例
2016/05/20 PHP
URL地址中的#符号使用说明
2011/02/12 Javascript
javascript克隆对象深度介绍
2012/11/20 Javascript
JSON辅助格式化处理方法
2013/03/26 Javascript
JavaScript日期时间格式化函数分享
2014/05/05 Javascript
网页禁用右键菜单和鼠标拖动选择方法小结
2015/02/25 Javascript
Jquery promise实现一张一张加载图片
2015/11/13 Javascript
jQueryUI中的datepicker使用方法详解
2016/05/25 Javascript
vue多级多选菜单组件开发
2020/09/08 Javascript
React/Redux应用使用Async/Await的方法
2017/11/16 Javascript
react实现点击选中的li高亮的示例代码
2018/05/24 Javascript
Vue 防止短时间内连续点击后多次触发请求的操作
2020/11/11 Javascript
Vue使用Proxy代理后仍无法生效的解决
2020/11/13 Javascript
[02:39]DOTA2国际邀请赛助威团西雅图第一天
2013/08/08 DOTA
python抓取百度首页的方法
2015/05/19 Python
Python的shutil模块中文件的复制操作函数详解
2016/07/05 Python
python 性能提升的几种方法
2016/07/15 Python
Python 正则表达式入门(初级篇)
2016/12/07 Python
python调用并链接MATLAB脚本详解
2019/07/05 Python
详解Python并发编程之创建多线程的几种方法
2019/08/23 Python
CSS3实现3D翻书效果
2016/06/20 HTML / CSS
加拿大拼图大师:Puzzle Master
2020/12/28 全球购物
敏捷开发的主要原则都有哪些
2015/04/26 面试题
洗发水广告词
2014/03/13 职场文书
《故都的秋》教学反思
2014/04/15 职场文书
体育比赛口号
2014/06/09 职场文书
2015年会计年终工作总结
2015/05/26 职场文书
2016春季运动会开幕词
2016/03/04 职场文书
关于python中readlines函数的参数hint的相关知识总结
2021/06/24 Python
python APScheduler执行定时任务介绍
2022/04/19 Python