排序算法—直接插入排序算法分析与实现(Python)
2015-12-24 19:37
731 查看
December 24, 2015 7:32 PM
插入排序就是每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕。
插入排序方法分直接插入排序和折半插入排序两种,这里只介绍直接插入排序,折半插入排序留到“查找”内容中进行。
图1演示了对4个元素进行直接插入排序的过程,共需要(a),(b),(c)三次插入。
运行结果:
插入排序就是每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕。
插入排序方法分直接插入排序和折半插入排序两种,这里只介绍直接插入排序,折半插入排序留到“查找”内容中进行。
图1演示了对4个元素进行直接插入排序的过程,共需要(a),(b),(c)三次插入。
[code]#InsertSort.py #王渊 #2015.12.21 #Email:wyxidian@gmail.com from 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 data data = 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)
运行结果:
[code]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]
相关文章推荐
- python 调试
- [Python]croppic 裁剪图片的Python后台实现
- python的urllib
- Python类Nagios监控软件开发实战视频课程
- Python与机器人技术
- python的opencv使用
- C# 服务里面调用Python.exe 来执行python文件
- python
- python 各类距离公式实现
- python 抓取百度搜索结果的快照排名信息
- python发送邮件脚本(支持多个附件,中文)
- Python点滴
- Python的操作符
- Python的数据类型
- Perceptron Learning Algorithm(python实现)
- Python基础:绑定和方法调用
- python的一些错误提示
- python的HTMLParser
- python实现决策树C4.5算法(在ID3基础上改进)
- Python模块学习:glob 文件路径查找