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基础教程之基本内置数据类型介绍
Feb 20 Python
Windows系统下安装Python的SSH模块教程
Feb 05 Python
用Python写一个无界面的2048小游戏
May 24 Python
Python编程之event对象的用法实例分析
Mar 23 Python
详解Django 中是否使用时区的区别
Jun 14 Python
python xpath获取页面注释的方法
Jan 14 Python
python添加菜单图文讲解
Jun 04 Python
Python+threading模块对单个接口进行并发测试
Jun 25 Python
PyCharm使用Docker镜像搭建Python开发环境
Dec 26 Python
Python 如何对文件目录操作
Jul 10 Python
python中24小时制转换为12小时制的方法
Jun 18 Python
Python读写yaml文件
Mar 20 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另类上传图片的方法(PHP用Socket上传图片)
2013/10/30 PHP
XAMPP安装与使用方法详细解析
2013/11/27 PHP
PHP PDOStatement::rowCount讲解
2019/02/01 PHP
网页的标准,IMG不支持onload标签怎么办
2006/06/29 Javascript
jQuery.clean使用方法及思路分析
2013/01/07 Javascript
nodejs npm install全局安装和本地安装的区别
2014/06/05 NodeJs
DOM基础教程之事件类型
2015/01/20 Javascript
浅谈javascript获取元素transform参数
2015/07/24 Javascript
javascript制作幻灯片(360度全景图片)
2015/07/28 Javascript
你所未知的3种Node.js代码优化方式
2016/02/25 Javascript
jQuery与JavaScript节点创建方法的对比
2016/11/18 Javascript
微信小程序实现图片预加载组件
2017/01/18 Javascript
Bootstrap显示与隐藏简单实现代码
2017/03/06 Javascript
详解angularjs跨页面传参遇到的一些问题
2018/11/01 Javascript
layui问题之自动滚动二级iframe页面到指定位置的方法
2019/09/18 Javascript
Vue实现页面添加水印功能
2019/11/09 Javascript
JS中的继承操作实例总结
2020/06/06 Javascript
[00:50]2014DOTA2国际邀请赛 NEWBEE战队回顾
2014/08/01 DOTA
python生成词云的实现方法(推荐)
2017/06/13 Python
Python之用户输入的实例
2018/06/22 Python
Python-while 计算100以内奇数和的方法
2019/06/11 Python
使用Pyinstaller转换.py文件为.exe可执行程序过程详解
2019/08/06 Python
Python numpy.zero() 初始化矩阵实例
2019/11/27 Python
Python面向对象原理与基础语法详解
2020/01/02 Python
pytorch1.0中torch.nn.Conv2d用法详解
2020/01/10 Python
Selenium Webdriver元素定位的八种常用方式(小结)
2021/01/13 Python
css3动画事件—webkitAnimationEnd与计时器time事件
2013/01/31 HTML / CSS
白宫黑市官网:White House Black Market
2016/11/17 全球购物
存储过程的优缺点是什么
2015/01/10 面试题
大学活动邀请函
2014/01/28 职场文书
党的群众路线教育实践活动方案
2014/10/31 职场文书
2014年初一班主任工作总结
2014/11/08 职场文书
2015年小学师德师风建设工作总结
2015/10/23 职场文书
浅谈如何写好演讲稿?
2019/06/12 职场文书
教你利用python实现企业微信发送消息
2021/05/23 Python
PyQt5实现多张图片显示并滚动
2021/06/11 Python