一尘不染

为什么合并排序最坏的情况下运行时间O(n log n)?

algorithm

有人可以用简单的英语或简单的方式向我解释吗?


阅读 228

收藏
2020-07-28

共1个答案

一尘不染

在“传统”合并排序中,每次传递数据都会使排序后的小节的大小加倍。第一次通过后,文件将被分为长度为2的部分。第二次通过后,长度为四。然后是8、16等,直到文件的大小。

有必要保持已排序部分的大小加倍,直到整个文件都由一个部分组成。将需要将节大小的lg(N)加倍才能达到文件大小,并且每次数据传递都将花费与记录数成正比的时间。

2020-07-28