排序算法 排序算法两阶段 第一阶段(比较排序) 插入排序 合并排序 堆排序 快速排序 第二阶段(非比较排序) 计数排序 基数排序 桶排序 第一阶段:比较排序 插入排序 插入排序的主要思想 : 将当前的元素放入前面合适的位置 插入排序的实现细节 : heap_sort小结: heap_sort中最重要 ...
分类:
编程语言 时间:
2018-10-06 20:40:56
阅读次数:
188
首先学习基数排序。 这一块是对y数组操作,先将n k到n 1放进去,再将[0,n)中sa[i] k =0的sa[i] k放进去。 这是处理新的x数组。y是充当原来的x。其他细节与代码相同。 ...
分类:
其他好文 时间:
2018-10-01 16:08:20
阅读次数:
234
后缀数组理解起来挺难的...... 首先得学一下基数排序。 比如说下面这组数据:11,12,23,15,34,24 基数排序的第一关键字:十位数,第二关键字:个位数。 我们先对第一关键字也就是十位数开个桶hs[]计数: 记完之后应该是这个样子:hs[1]=3,hs[2]=2,hs[3]=1 这些数代 ...
分类:
编程语言 时间:
2018-09-25 20:39:51
阅读次数:
195
def radix_sort(array): bucket, digit = [[]], 0 while len(bucket[0]) != len(array): bucket = [[], [], [], [], [], [], [], [], [], []] for i in range(le... ...
分类:
编程语言 时间:
2018-09-22 10:34:39
阅读次数:
155
复习基数排序和归并排序: 1、 基数排序原理 基数排序(radix sort)是一种只适用于数字或字母类型的排序方法,它检查数字或字母的每一位,将之分类,按照位数的特定顺序,来将元素排列,比如身份证排序,邮编排序,字符串排序。以数字为例,将所有元素按照个位数字分类,分类好后,将个位数字大小排列组合起 ...
分类:
编程语言 时间:
2018-09-21 00:34:40
阅读次数:
194
01.计数排序、桶排序与基数排序 并不是所有的排序 都是基于比较的,计数排序和基数排序就不是。基于比较排序的排序方法,其复杂度无法突破$n\log{n}$ 的下限,但是 计数排序 桶排序 和基数排序是分布排序,他们是可以突破这个下限达到O(n)的的复杂度的 。 1. 计数排序 概念 计数排序是一种稳 ...
分类:
编程语言 时间:
2018-09-16 15:49:47
阅读次数:
184
Given an unsorted integer array, find the smallest missing positive integer.Example 1:Input: [1,2,0]Output: 3Example 2:Input: [3,4,-1,1]Output: 2Examp ...
分类:
其他好文 时间:
2018-09-16 12:23:58
阅读次数:
137
基数排序是比较适合并行化的排序算法之一,因为它不需要他的元素和数组当中的其他元素去进行一一对比来决定放的位置。另外还有比较适合并行化的就是双调排序。 基数排序原理 以从小到大,一次排序只考虑一位为例。基数排序一般从数据的最低有效位(LSB)开始进行排序,即考察所有的数据的当前位,其当前位为0的数据放 ...
分类:
编程语言 时间:
2018-09-15 23:20:48
阅读次数:
983