外部排序和内部排序有什么区别?

时间:2012-04-10 05:44:54

标签: algorithm sorting

外部排序和内部排序之间的区别是什么?我不知道输入数据在RAM中的存储有多么糟糕,与算法无关。

1 个答案:

答案 0 :(得分:12)

在内部排序中,在排序过程中,所有要排序的数据始终存储在内存中。在外部排序中,数据存储在外部存储器(如磁盘上),并且仅以小块的形式加载到内存中。外部排序通常适用于数据无法完全适合内存的情况。

因此,在内部排序中,您可以执行类似shell排序的操作 - 只需在您想要的任何时刻访问您想要的任何数组元素。你不能在外部排序中做到这一点 - 数组不完全在内存中,因此你不能随机访问内存中的任何元素并在磁盘上随机访问它通常是非常慢的。外部排序算法必须以最佳方式处理数据块的加载和卸载。