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 相关文章推荐
Linux下使用python自动修改本机网关代码分享
May 21 Python
Python代码解决RenderView窗口not found问题
Aug 28 Python
Python实现七彩蟒蛇绘制实例代码
Jan 16 Python
python运行时强制刷新缓冲区的方法
Jan 14 Python
对python中if语句的真假判断实例详解
Feb 18 Python
用Anaconda安装本地python包的方法及路径问题(图文)
Jul 16 Python
40行Python代码实现天气预报和每日鸡汤推送功能
Feb 27 Python
django xadmin 管理器常用显示设置方式
Mar 11 Python
Softmax函数原理及Python实现过程解析
May 22 Python
详解python如何引用包package
Jun 07 Python
Python依赖包迁移到断网环境操作
Jul 13 Python
PyCharm 解决找不到新打开项目的窗口问题
Jan 15 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遍历目录函数opendir()、readdir()、closedir()、rewinddir()总结
2014/11/18 PHP
PHP浮点数的一个常见问题
2016/03/10 PHP
Zend Framework框架教程之Zend_Db_Table_Rowset用法实例分析
2016/03/21 PHP
解决JQeury显示内容没有边距内容紧挨着浏览器边线
2013/12/20 Javascript
关于javaScript注册click事件传递参数的不成功问题
2014/07/18 Javascript
js中实现多态采用和继承类似的方法
2014/08/22 Javascript
推荐6款基于jQuery实现图片效果插件
2014/12/07 Javascript
Javascript核心读书有感之词法结构
2015/02/01 Javascript
js实现网页多级级联菜单代码
2015/08/20 Javascript
jQuery绑定事件on()与弹窗的简要概述
2016/04/27 Javascript
NodeJS连接MongoDB数据库时报错的快速解决方法
2016/05/13 NodeJs
JS设置CSS样式的方式汇总
2017/01/21 Javascript
JS实现仿饿了么在浏览器标签页失去焦点时网页Title改变
2017/06/01 Javascript
解决vue.js在编写过程中出现空格不规范报错的问题
2017/09/20 Javascript
简化vuex的状态管理方案的方法
2018/06/02 Javascript
JS使用对象的defineProperty进行变量监控操作示例
2019/02/02 Javascript
Laravel admin实现消息提醒、播放音频功能
2019/07/10 Javascript
微信小程序bindtap事件与冒泡阻止详解
2019/08/08 Javascript
layui问题之模拟table表格中的选中按钮选中事件的方法
2019/09/20 Javascript
[02:44]DOTA2英雄基础教程 魅惑魔女
2014/01/07 DOTA
Python 元类使用说明
2009/12/18 Python
用Python实现通过哈希算法检测图片重复的教程
2015/04/02 Python
Python实现购物系统(示例讲解)
2017/09/13 Python
django迁移数据库错误问题解决
2019/07/29 Python
详解django中Template语言
2020/02/22 Python
Python logging日志库空间不足问题解决
2020/09/14 Python
Java中实现多态的机制
2015/08/09 面试题
社团文化节邀请函
2014/01/10 职场文书
小学生关于梦想的演讲稿
2014/08/22 职场文书
家庭贫困证明书(3篇)
2014/09/15 职场文书
服务整改报告
2014/11/06 职场文书
置业顾问岗位职责
2015/02/09 职场文书
2015年新学期寄语
2015/02/26 职场文书
Nginx实现高可用集群构建(Keepalived+Haproxy+Nginx)
2021/05/27 Servers
HTML+CSS实现导航条下拉菜单的示例代码
2021/08/02 HTML / CSS
SQL使用复合索引实现数据库查询的优化
2022/05/25 SQL Server