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

Cel*_*tas 8 sorting algorithm

外部排序和内部排序有什么区别?我没有看到输入数据在RAM中存储的程度如何与算法有关.

sha*_*oth 14

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

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