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深入学习之对象的属性
Aug 31 Python
解读Python编程中的命名空间与作用域
Oct 16 Python
快速排序的算法思想及Python版快速排序的实现示例
Jul 02 Python
python 创建弹出式菜单的实现代码
Jul 11 Python
PyQt5实现简易计算器
May 30 Python
在python image 中安装中文字体的实现方法
Aug 22 Python
谈一谈数组拼接tf.concat()和np.concatenate()的区别
Feb 07 Python
Python实现猜年龄游戏代码实例
Mar 25 Python
Python Socketserver实现FTP文件上传下载代码实例
Mar 27 Python
使用keras根据层名称来初始化网络
May 21 Python
python自动化测试三部曲之unittest框架的实现
Oct 07 Python
pytorch中的 .view()函数的用法介绍
Mar 17 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
Zerg剧情介绍
2020/03/14 星际争霸
php实现监听事件
2013/11/06 PHP
javascript新手语法小结
2008/06/15 Javascript
jQuery+jqmodal弹出窗口实现代码分明
2010/06/14 Javascript
JS下拉框内容左右移动效果的具体实现
2013/07/10 Javascript
Js实现动态添加删除Table行示例
2014/04/14 Javascript
jQuery窗口、文档、网页各种高度的精确理解
2014/07/02 Javascript
javascript实现简单计算器效果【推荐】
2016/04/19 Javascript
JS实现焦点图轮播效果的方法详解
2016/12/19 Javascript
Three.js的使用及绘制基础3D图形详解
2017/04/27 Javascript
Vue2.5通过json文件读取数据的方法
2018/02/27 Javascript
在weex中愉快的使用scss的方法步骤
2020/01/02 Javascript
JS数组方法reverse()用法实例分析
2020/01/18 Javascript
javascript设计模式 ? 解释器模式原理与用法实例分析
2020/04/17 Javascript
python:socket传输大文件示例
2017/01/18 Python
新手如何快速入门Python(菜鸟必看篇)
2017/06/10 Python
Python实现字典去除重复的方法示例
2017/07/31 Python
Python实现的朴素贝叶斯分类器示例
2018/01/06 Python
详解windows python3.7安装numpy问题的解决方法
2018/08/13 Python
用于业余项目的8个优秀Python库
2018/09/21 Python
python爬虫URL重试机制的实现方法(python2.7以及python3.5)
2018/12/18 Python
Python3监控windows,linux系统的CPU、硬盘、内存使用率和各个端口的开启情况详细代码实例
2020/03/18 Python
CSS3教程(6):创建网站多列
2009/04/02 HTML / CSS
input file上传文件样式支持html5的浏览器解决方案
2012/11/14 HTML / CSS
德国健康生活方式网上商店:Landkaufhaus Mayer
2019/03/12 全球购物
奥巴马上海演讲稿
2014/09/10 职场文书
教师工作自我鉴定范文
2014/09/14 职场文书
中层干部考核评语
2015/01/04 职场文书
2015社区爱国卫生工作总结
2015/04/21 职场文书
保留意见审计报告
2015/06/05 职场文书
食堂管理制度范本
2015/08/04 职场文书
MySQL 使用事件(Events)完成计划任务
2021/05/24 MySQL
总结一下关于在Java8中使用stream流踩过的一些坑
2021/06/24 Java/Android
Python面向对象编程之类的概念
2021/11/01 Python
win10如何更改appdata文件夹的默认位置?
2022/07/15 数码科技
TS 类型收窄教程示例详解
2022/09/23 Javascript