Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
外部排序和内部排序有什么区别?我不知道输入数据如何存储在 RAM 中或与算法无关。
在内部排序中,所有要排序的数据在排序过程中始终存储在内存中。在外部排序中,数据存储在内存外部(如磁盘上),并且仅以小块的形式加载到内存中。外部排序通常用于数据无法完全放入内存的情况。
因此,在内部排序中,您可以执行 shell 排序之类的操作 - 只需在您想要的任何时刻访问您想要的任何数组元素。你不能在外部排序中这样做——数组并不完全在内存中,所以你不能随机访问内存中的任何元素,并且在磁盘上随机访问它通常非常慢。外部排序算法必须以最佳方式处理加载和卸载数据块。