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开发环境搭建
Dec 16 Python
利用Python自带PIL库扩展图片大小给图片加文字描述的方法示例
Aug 08 Python
使用tensorflow实现线性svm
Sep 07 Python
使用Python开发SQLite代理服务器的方法
Dec 07 Python
Python3中编码与解码之Unicode与bytes的讲解
Feb 28 Python
Python scrapy增量爬取实例及实现过程解析
Dec 24 Python
python numpy生成等差数列、等比数列的实例
Feb 25 Python
Python中使用socks5设置全局代理的方法示例
Apr 15 Python
解决echarts中饼图标签重叠的问题
May 16 Python
Django model class Meta原理解析
Nov 14 Python
Python爬虫自动化爬取b站实时弹幕实例方法
Jan 26 Python
python中altair可视化库实例用法
Jan 26 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 $_FILES函数详解
2011/03/09 PHP
PHP连接access数据库
2015/03/27 PHP
php实现的IMEI限制的短信验证码发送类
2015/05/05 PHP
laravel5表单唯一验证的实例代码
2019/09/30 PHP
PHP 8新特性简介
2020/08/18 PHP
document 和 document.all 分别什么时候用
2006/06/22 Javascript
JS获取IUSR_机器名和IWAM_机器名帐号的密码
2006/12/06 Javascript
jquery中使用$(#form).submit()重写提交表单无效原因分析及解决
2013/03/25 Javascript
javascript中interval与setTimeOut的区别示例介绍
2014/03/14 Javascript
javascript实现锁定网页、密码解锁效果(类似系统屏幕保护效果)
2014/08/15 Javascript
让JavaScript和其它资源并发下载的方法
2014/10/16 Javascript
node爬取微博的数据的简单封装库nodeweibo使用指南
2015/01/02 Javascript
JS判断浏览器是否安装flash插件的简单方法
2016/09/13 Javascript
javascript中setAttribute兼容性用法分析
2016/12/12 Javascript
微信小程序 input输入框控件详解及实例(多种示例)
2016/12/14 Javascript
Javascript仿京东放大镜的效果
2017/03/01 Javascript
JavaScript实现前端分页控件
2017/04/19 Javascript
vue.js 使用v-if v-else发现没有执行解决办法
2017/05/15 Javascript
详解NODEJS基于FFMPEG视频推流测试
2017/11/17 NodeJs
Vue2仿淘宝实现省市区三级联动
2020/04/15 Javascript
详解vue-cli 3.0 build包太大导致首屏过长的解决方案
2018/11/10 Javascript
深入了解query和params的使用区别
2019/06/24 Javascript
使用vue实现各类弹出框组件
2019/07/03 Javascript
javascript设计模式之迭代器模式
2020/01/30 Javascript
小程序跳转到的H5页面再跳转回跳小程序的方法
2020/03/06 Javascript
使用python遍历指定城市的一周气温
2017/03/31 Python
Python pyinotify模块实现对文档的实时监控功能方法
2018/10/13 Python
详解基于python-django框架的支付宝支付案例
2019/09/23 Python
基于python检查矩阵计算结果
2020/05/21 Python
Python __slots__的使用方法
2020/11/15 Python
党的群众路线教育实践活动个人自我剖析材料
2014/10/07 职场文书
报名委托书
2015/01/29 职场文书
转变工作作风心得体会
2016/01/23 职场文书
Oracle笔记
2021/04/05 Oracle
python四个坐标点对图片区域最小外接矩形进行裁剪
2021/06/04 Python
GTX1660显卡搭配显示器推荐
2022/04/19 数码科技