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
基数排序是比较适合并行化的排序算法之一,因为它不需要他的元素和数组当中的其他元素去进行一一对比来决定放的位置。另外还有比较适合并行化的就是双调排序。 基数排序原理 以从小到大,一次排序只考虑一位为例。基数排序一般从数据的最低有效位(LSB)开始进行排序,即考察所有的数据的当前位,其当前位为0的数据放 ...
分类:
编程语言 时间:
2018-09-15 23:20:48
阅读次数:
983
欢迎Star,本文的所有示例源码都在Github:https://github.com/AndroidHensen/Arithmetic 本篇内容包含 排序的介绍 排序的C的实现 排序的Java的实现 排序的时间复杂度的计算 1、基本思想: 两个数比较大小,较大的数下沉,较小的数冒起来 2、实现步骤 ...
分类:
编程语言 时间:
2018-09-11 13:59:30
阅读次数:
144
小朋友学数据结构(10):基数排序 一、基本思想 将所有待比较数值(正整数)统一为同样的数位长度,数位较短的数前面补零。然后,从最低位(即个位数)开始,依次进行一次排序。这样从最低位排序一直到最高位排序完成以后, 数列就变成一个有序序列。 与其他排序不同的是,基数排序不涉及数的交换。 基数排序是一种 ...
分类:
编程语言 时间:
2018-09-08 00:49:13
阅读次数:
174
目的:掌握 基数排序 的 基本思想与过程、代码实现、时间复杂度 1、基本思想与过程:(只针对数字) (1)首先确定基数为10,数组的长度也就是10.每个数都会在这10个数中寻找自己的位置。 (2)不同于BinSort会直接将数放在数组的下标处,如将 [34] 放在下标为34的位置,即a[34] = ...
分类:
编程语言 时间:
2018-09-02 12:56:46
阅读次数:
174
Radix Sorting 稳定 O(d(r+n)) 不需要进行关键字之间的比较、交换、移动,借助分配和收集完成排序 扑克牌 最主位关键字 最次位关键字 最高位优先 most significant digit first 先按照最主位关键字排序,知道最后一个关键字,必须将序列逐层分割成若干个子序列 ...
分类:
编程语言 时间:
2018-08-30 16:42:43
阅读次数:
200
图片镇楼 插入排序(InsertSort) 步骤: 1.依次选择一个待排序的记录, 2.依次与已经排好序的有序序列比较,并插入 3.持续每次对越来越少的元素重复上面的步骤,直到插完所有元素为。 改进: 二分插入排序,直接和有序序列的中间比较。 希尔排序。 希尔排序(又叫缩小增量排序,ShellSor ...
分类:
编程语言 时间:
2018-08-27 18:36:09
阅读次数:
144
两篇很赞的博文: 后缀数组 最详细讲解 (这一篇代码注释很详细,可以好好研读一番) 知识点 后缀数组 orz后缀数组代码 后缀数组主要实现思想就是倍增法+基数排序,代码难也是因为这两者要同时运用。 如果对基数排序还不懂,可以参考一下这篇博文: 基数排序 今后还是要继续学这个神仙操作,继续加油。 ...
分类:
编程语言 时间:
2018-08-23 00:17:40
阅读次数:
227