外存辅助排序

假设有一个4G可排序的文件,内存大小有1G,给出你的排序算法。
1.使用选择排序:遍历4G文件,最次找出最小的一个元素,找到后,写入一个文件中。其中每次加载进内存比如一行数据(内存利用率极低),为找到一个最小的元素,可能需要N多次载入内存的操作,效率极低。假如有N个元素,那时间复杂度为O(N^2 )

2.快速排序+合并排序:每次载入内存800M数据,这样5次即可遍历一遍所有的元素。对于每次载入内存的800M内存进行快速排序。5次快排之后,整个文件变为5块已排序的数据,然后再对这5部分数据进行合并排序。那时间复杂度为O(NlogN ).
未完待续。。。

你可能感兴趣的:(外存辅助排序)