排序算法—直接插入排序算法分析与实现(Python)
来源:互联网 发布:freehand软件用法 编辑:程序博客网 时间:2024/04/27 20:26
December 24, 2015 7:32 PM
插入排序就是每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕。
插入排序方法分直接插入排序和折半插入排序两种,这里只介绍直接插入排序,折半插入排序留到“查找”内容中进行。
图1演示了对4个元素进行直接插入排序的过程,共需要(a),(b),(c)三次插入。
#InsertSort.py#王渊#2015.12.21#Email:wyxidian@gmail.comfrom pylab import *def InsertSort(data): data = [0]+list(data) #添加辅助位置,"哨兵" data = array(data) length = data.__len__() #获取数据长度 #标记依次遍历是否有数据交换,如果没有,排序完成 for i in range(2,length): if(data[i]<data[i-1]): data[0] = data[i] #先将当前值保存在第一个数据的位置 j = i-1 while data[j] > data[0]: #数据平移 data[j+1] = data[j] j = j-1 data[j+1] = data[0] data = list(data) data = data[1:] #去掉第一个数据,因为它只是一个辅助的位置 data = array(data) return datadata = array([48,1,16,62,73,88,24,59,99,0,35])print("The original data is : ", data)data = InsertSort(data)print("The result of sorted data is : ", data)
运行结果:
The original data is : [48 1 16 62 73 88 24 59 99 0 35]The result of sorted data is : [ 0 1 16 24 35 48 59 62 73 88 99]
2 0
- 排序算法—直接插入排序算法分析与实现(Python)
- 直接插入排序算法分析、代码实现
- python实现的直接插入排序算法
- 实现直接插入排序算法
- 直接插入排序算法实现
- 直接插入排序算法实现
- 排序算法C++ && Python实现---直接插入排序
- 排序算法—冒泡排序算法分析与实现(Python)
- 排序算法—选择排序算法分析与实现(Python)
- 排序算法—希尔排序算法分析与实现(Python)
- 排序算法—堆排序算法分析与实现(Python)
- 排序算法—归并排序算法分析与实现(Python)
- 排序算法—快速排序算法分析与实现(Python)
- 【数据结构与算法】【排序】直接插入排序的代码实现
- 算法实现之直接插入排序与shell排序
- 【排序算法】直接插入排序(java实现)
- 排序算法--Java实现直接插入排序
- 算法分析-插入排序(直接插入排序 & 希尔排序)
- Objective-C基础1-类目(Category)和延展(Extension)的区别
- 支持VPN的路由器,小米路由器PPTP的设置,
- Leetcode:Product of Array Except Self
- 【Unity3D游戏开发】iOS9 ReplayKit录制视频 (三十)
- C#动态链接库创建和使用实例
- 排序算法—直接插入排序算法分析与实现(Python)
- ng-cordova
- 疑难杂症:MSSQL Server操作界面挂掉了
- OpenCV【2】---读取png图片显示到QT label上的问题
- leetcode -- Dungeon Game -- dp重点,典型题
- android 动态addview注意
- JavaScript 如何给对象添加方法
- 括号法递归建立二叉树并层序遍历输出
- matlab cross 3*1 向量叉乘