大数据小内存排序问题如何巧妙解决,
目录
- 三种方法:
- 方法概要
- 数据库排序(对数据库设备要求较高)
- 分治法(常见思路)
- 位图法(Bitmap)
大数据小内存排序问题,很经典,很常见,类似的还有比如 “如何对上百万考试的成绩进行排序” 等等。
三种方法:
- 数据库排序(对数据库设备要求较高)
- 分治法(常见思路)
- 位图法(Bitmap)
方法概要
数据库排序(对数据库设备要求较高)
操作:将数据全部导入数据库,建立索引,数据库对数据进行排序,提取出数据。
特点:操作简单, 运算速度较慢,对数据库设备要求较高。分治法(常见思路)
操作:操作与归并排序的思想类似,都是分治。
将数据进行分块,然后对每个数据块进行内部的排序(假如是对int形数据升序)。
和归并排序类似,每个数据块取第一个数据(当前块的最小数据),然后比较取出的数据,取其最小加入结果集。
重复2操作,直到取完所有数据,此时排序完毕。
特点:
位图法(Bitmap)
操作:基本思想就是利用一位(bit)代表一个数字,例如第 3 位上为 1,则说明 3 这个数字出现过,若为0,则说明 3 这个数字没有出现过。很简单~
java.util 封装了
BitSet这样一个类,是位图法的典型实现。特点:
可读性差(不是一般的差
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处. 同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。