线性时间的哈希排序
来源:互联网 发布:the zen of python 编辑:程序博客网 时间:2024/05/18 00:00
现有的排序方法中,最快的快排的时间复杂度是NlogN,但是,面对数据量差比较小的大量数据来说,往往这样的时间复杂度是不够的,例如学生的成绩,等大规模整数数据,所以利用哈希散列的排序方法,可以用充足的空间复杂度,来换取更快的时间复杂度,(前提是:整数,且数据之间相差不大)
具体思想看代码就能看懂
import java.util.Scanner;public class HashSort {public static void main(String[] args) {int num[] = new int[10];int hash[] = new int[105];Scanner cin = new Scanner(System.in);for(int i = 0;i<5;i++){num[i] = cin.nextInt();hash[num[i]]++;}for(int i=104;i>=0;i--)for(int j=0;j<hash[i];j++){System.out.print(i+" ");}}}
通过代码我们可以看出,只需要扫一边hash表,有序序列就出来了,但是我们也可以看出如果数据量之间的差过大时例{2,1000000},这样所浪费的空间是很大的,那样Hash排序所应用的空间就比较狭小了。
0 0
- 线性时间的哈希排序
- 线性时间的排序
- 线性时间的排序算法
- 线性时间的计数排序
- 线性时间排序的性能比较
- 线性时间排序
- 线性时间排序
- 线性时间排序习题
- 线性时间排序
- 线性时间排序
- 线性时间排序
- 线性时间排序
- 线性时间排序算法
- 线性时间排序-counting_sort
- 线性时间排序
- 算法-线性时间排序
- 线性时间排序
- 线性时间排序
- 选择排序算法
- Spark Streaming生成RDD并执行Spark Job源码内幕解密
- 一个好的微信运营胜过100个销售人员:微信运营深度剖析
- 1-14 串口在S3C2440上的原理、配置与驱动实现
- HDU 4807 Lunch Time(费用流)★
- 线性时间的哈希排序
- Java 中MD5 和SHA加密算法工具类
- 创建第二个 local network - 每天5分钟玩转 OpenStack(84)
- 指针
- 勾股定理一日一证连载96
- ThinkPHP Where 条件中使用表达式
- html入门
- HTML5 WebSocketAPI实例(二)
- 09-决策论