海量数据排序,不能一次读入内存的问题,求指教
如题,海量数据排序,内存小的情况。
查了资料目前想了两种处理方式:
1、首先将大文件分为多个小文件,对每个小文件进行排序,排序完之后进行外部排序。采用多路归并,维护一个小顶堆,每次把堆顶写入磁盘,然后再从原堆顶之前所在的小文件中取下一个数,完成排序。
2、第一次遍历找出最大值和最小值,用桶排序,维护多个桶(这些桶就是多个小文件),再次遍历数据,将数据放入对应的桶中,最后把小文件合成大文件,完成排序。
求指点下这些方法可行性如何~