外部排序

外部排序常采用的排序方法也是归并排序

外存中4500个记录,内存只能容纳750个记录,6次读取分别进行内部排序,排序好的分别为Segment_1…

内存空间划分为三份,每份大小250个记录,Segment_1读取250个记录放入一份,Segment_2读取250个记录放入一份,最后一份为输出缓冲区,开始归并,输出缓冲区满后写到磁盘,某个输入空了,继续读取250个记录,直到完成Segment_1和Segment_2的归并记为Segment_12,同样完成其他Segment的归并,最后Segment_12和Segment_34进行归并,以此类推,最后完成4500个记录的排序。

1 大量数据查找最大的5个数
建大小为5的小顶堆(以初始5个数),遍历其余数据,比堆顶大可替换堆顶并堆调整
在此之前先去重(先分治,每个hash后的小文件做去重,hashMap记录数据的出现次数,keySet获取数据)

2 大量数据查找出现频率最高的5个数
分治(按数据对小文件数量取模,放入到多个小文件中),每个小文件统计频率前5(hashMap),所有的小文件前5进行归并
分治的核心:保证相同数据一定在同一个小文件内

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值