
排序
瑶子ove
每天进步一点
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
冒泡排序
'''冒泡升序imput_list: 待排序列表sorted_list: 升序排列好的列表'''def bubbleSort(imput_list): if len(imput_list) == 0: return [] sorted_list = imput_list for i in range(len(imput_list)-1)...原创 2018-09-04 00:10:31 · 125 阅读 · 0 评论 -
直接插入排序
'''直接插入排序'''def insertSort(input_list): if len(input_list) == 0: return [] sorted_list = input_list for i in range(1,len(sorted_list)): print('第 %d 次排序:'%i) j =...原创 2018-09-04 22:01:44 · 105 阅读 · 0 评论 -
希尔排序
步长的选择是希尔排序的重要部分。算法最开始以一定的步长进行排序,然后会继续以更小的步长进行排序,最终算法以步长为 1 进行排序。当步长为 1 时,算法变为直接插入排序,这就保证了数据一定会被全部排序。def shellSort(input_list): length = len(input_list) if length <= 1: return inp...原创 2018-09-05 22:06:22 · 113 阅读 · 0 评论 -
快速排序 ----python
'''快速排序原理:选取第一个数据作为Base,通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。input_list:待排序模块'''def quickSort(input_list,i,j): if i < j: ...原创 2018-09-06 23:15:18 · 155 阅读 · 0 评论 -
简单选择排序----python
'''原理:每一趟从待排序的元素中选出最小(最大)的元素,顺序放在待排序的序列中最前,直到全部元素排序完成假设初始为:[7,3,8,5,6,1,9,4,2]第一趟排序后:1,[7,3,8,5,6,9,4,2]第二趟排序后:1,2,[7,3,8,5,6,9,4]第三趟排序后:1,2,3,[7,8,5,6,9,4]第四趟排序后:1,2,3,4,[7,8,5,6,9]第五趟排序后:1,2,...原创 2018-09-07 22:56:54 · 289 阅读 · 0 评论 -
堆排序----python
'''1、根据初始数组去构造初始堆(构建一个完全二叉树,保证所有的父结点都比它的孩子结点数值大。2、每次交换第一个和最后一个元素,输出最后一个元素(最大值),然后把剩下元素重新调整为大根堆。即可得到升序的序列注:对于完全二叉树,第一个非叶子节点为:n//2 - 1'''def HeafSort(input_list): ''' param :input_list:待排...原创 2018-09-08 17:31:06 · 149 阅读 · 0 评论 -
归并排序----python
def merge(left,right): result = [] i = 0;j = 0 while i < len(left) and j < len(right): #左右比较确定添加到result的顺序 if left[i] < right[j]: result.append(left[...原创 2018-09-09 23:19:49 · 186 阅读 · 0 评论 -
基数排序-----python(简单易懂)
基本解法第一步以LSD为例,假设原来有一串数值如下所示:73, 22, 93, 43, 55, 14, 28, 65, 39, 81首先根据个位数的数值,在走访数值时将它们分配至编号0到9的桶子中:01 812 223 73 93 434 145 55 65678 289 39第二步接下来将这些桶子中的数值重新串接起来,成为以下的数列:81, 22, 73, 93...原创 2018-11-12 22:22:43 · 4863 阅读 · 2 评论