public static int[] radixSort(int[] arr, int radix, int d){ //用于暂存元素 int[] temp = new int[arr.length]; //用于计数排序 int[] count = new int[radix]; int divi... ...
分类:
编程语言 时间:
2017-12-30 22:36:54
阅读次数:
189
注:基数排序中:r是关键字的基数,d是长度,n是关键字的个数 1.插入排序 基本思想:在序号i之前的元素(0到i-1)已经排好序,本趟需要找到i对应的元素x (此时即arr[i]) 的正确位置k,在寻找位置k的过程中与序号i-1到0的元素依次进行比较。如果x小于比较元素,则比较元素向后移动一位;否则 ...
分类:
编程语言 时间:
2017-12-24 20:08:57
阅读次数:
177
1.单刀直入 基数排序是基于多关键字的一种排序,借助“分配”与“收集”两个过程来得到一个有序序列,其时间复杂度为O(d(n+rd)),空间复杂度为O(n+rd),属于稳定的排序... 举个例子,加入有一下待排序列#->278->109->63->930->589->184->505->269->8- ...
分类:
编程语言 时间:
2017-12-23 16:02:50
阅读次数:
309
首先拍完序一一对应肯定是最优的,但是修改怎么办?我们可以局部考虑一下怎么计算答案,把点离散化一下,然后对于汽车我们看做+1,加油站看做-1,如果某个点的前缀和是0那么肯定匹配上了,否则就不是,那么贡献是什么,就是这个点的前缀和的绝对值乘上这个点和下一个点的距离(离散化以前的),不懂的话自己画图试一下 ...
分类:
其他好文 时间:
2017-12-22 21:46:43
阅读次数:
149
1)插入排序(从第二个元素开始,依次从剩余元素中选择一个,插入到前面有序的子序列中) 2)快速排序(不是稳定的排序,平均时间复杂度O(nlogn)) 3)归并排序(是稳定的排序算法,时间复杂度O(nlogn)) 4)堆排序(不是稳定的排序,时间复杂度O(nlogn)) 5)计数排序、基数排序、桶排序 ...
分类:
编程语言 时间:
2017-12-20 21:54:33
阅读次数:
193
什么是排序稳定性? 通俗地讲就是在排序前A的位置是 i ,B的位置是 j,此时 i < j,则如果在排序后A的位置还是在B之前,那么称它是稳定的。 它的好处是,如果排序算法是稳定的,那么第一个排序结果可以为另一个排序所用。比如基数排序,先按低位排序,逐次按高位排序,低位相同的元素其顺序在高位也相同时 ...
分类:
编程语言 时间:
2017-12-17 23:56:13
阅读次数:
177
冒泡排序 插入排序 选择排序 希尔排序 归并排序 快速排序 堆排序 计数排序 基数排序 桶排序 O是指计算机执行命令所需的时间 nlogn是算法的时间复杂度,一般排序用的是log2n 总体总结表:这个有个错误就是归并排序需要一个o(n)的辅助数组 冒泡排序 主要思想:外层循环从1到n-1,内循环从当 ...
分类:
编程语言 时间:
2017-12-11 01:03:47
阅读次数:
378
根据维基百科,基数排序的定义为:基数排序(英语:Radixsort)是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。由于整数也可以表达字符串(比如名字或日期)和特定格式的浮点数,所以基数排序也不是只能使用于整数。基数排序的思..
分类:
编程语言 时间:
2017-11-16 11:40:17
阅读次数:
128
1.后缀就是从右端向左截取一段最为后缀。 banana$ 7个字母的 后缀有7种 1.BANANA$ 2.ANANA$ 3.NANA$ 4.ANA$ 5.NA$ 6.A$ 7.$ 按照字典序顺序进行一次排序。 7 $ 6 A$ 4 ANA$ 2 ANANA$ 1 BANANA$ 5 NA$ 3 NA ...
分类:
其他好文 时间:
2017-11-12 18:41:42
阅读次数:
134
1.冒泡排序 2.快速排序 3.插入排序 3.1希尔排序(插入排序的一种) 4.选择排序 5. 归并排序 6.堆排序 7.计数排序 8.基数排序 9.桶排序 ...
分类:
编程语言 时间:
2017-11-11 00:23:48
阅读次数:
276