【发布时间】:2020-05-09 14:50:12
【问题描述】:
我看过的很多资源都说分而治之的反转计数方法的运行时间为 nlog(n),但我不明白为什么。 我知道合并排序有 nlog(n) 时间,因为在基本情况下划分数组的数量是 log(n) 并且每次我们需要合并两个数组时合并的运行时间是 (n)。
但是当我们在合并排序之上“捎带”时,我们需要比较一个数组的两半:
[a,b,c] and [d,e,f]
“a”需要与“d”、“e”和“f”最坏情况等进行比较,以此类推左侧数组中的所有元素。因此,似乎仅此一项就会有 n^2/4 的运行时间,所以分而治之的反转算法的运行时间不会是 n^2log(n) 吗?
【问题讨论】: