用Python 学习数据结构与算法 二、插入排序
2016-08-10 18:50
246 查看
ps:当初为了学习数据结构与算法,傻傻的买了本不适合入门的《算法导论》 真是坑坏我了,还好我啃了大部分内容,如今复习起来也算容易!没白啃!
我们先来聊聊插入算法,插入算法的主要是一次遍历的过程,在遍历过程中回查之前元素,寻找需要排序元素合适位置的一个过程。
上代码:
输出结果:
输出结果:
我们先来聊聊插入算法,插入算法的主要是一次遍历的过程,在遍历过程中回查之前元素,寻找需要排序元素合适位置的一个过程。
上代码:
#coding=utf-8 def InsertionSort(array): #获得数组长度 nLength = len(array) #迭代数组,正查 #从下标1开始是因为需要与前一个数组元素进行比较 for j in range(1, nLength): #获得要排序的元素 key = array[j] #获得需比较的元素下标 i = j - 1 #比较前一个元素值 #倒查到首元素0 while i > -1 and array[i] > key: #这里将>改为<,则会按降序排列 #前一个元素大于key则将其向后移 array[i + 1] = array[i] #继续倒查 i = i - 1 #找到合适位置i后当值放入 array[i + 1] = key A = [5, 2, 4, 6, 1, 3] InsertionSort(A) print(A)
输出结果:
[1, 2, 3, 4, 5, 6]
#coding=utf-8 #插入排序递归写法 def Core(Array, i, key): index = i[0] if index > -1 and Array[index] > key: Array[index + 1] = Array[index] i[0] = index - 1 Core(Array, i, key) def Insert(Array, Pos = 1, MaxPos=None): if MaxPos == None: MaxPos = len(Array) if Pos == MaxPos: return key = Array[Pos] #使用list数组 #在Core递归内部修改后的i值在外面会被使用到 #而python的整数型传值是使用的值传,使用list则是引用,当然也可以封装一下i,这里想偷懒 i = [Pos - 1,] Core(Array, i, key) Array[i[0] + 1] = key Insert(Array, Pos + 1, MaxPos) A = [5, 2, 4, 6, 1, 3] Insert(A) print(A)
输出结果:
[1, 2, 3, 4, 5, 6]
相关文章推荐
- Python学习之---冒泡,选择,插入排序
- 数据结构与算法学习之路:二分插入排序
- Python天天美味(31) - python数据结构与算法之插入排序
- 用Python 学习数据结构与算法 三、选择排序
- 算法导论学习-插入排序python实现
- python学习笔记(二)数据结构与算法
- Python学习之---冒泡,选择,插入排序
- 【Python学习笔记】-冒泡排序、插入排序、二分法查找
- 排序法学习之插入排序(python3实现)
- 【Python学习笔记】-冒泡排序、插入排序、二分法查找
- 【学习笔记】python版选择排序和插入排序及时间复杂度分析
- 用Python 学习数据结构与算法 四、归并排序
- 用Python 学习数据结构与算法 五、插入排序&二分查找
- python学习第一步:数据结构与算法
- 新的学习:从Python开始[转]
- 开始学习python了.
- 学习Python知识小结 杂记二
- 使用minidom来处理XML的示例(Python 学习)(转载)
- 开始学习python
- Python相关模块学习1 处理文件名模块glob