我们知道,归并排序有以下算法的时间复杂度为O(nlogn):归并排序复杂
void mergesort(n elements) {
mergesort(left half); ------------ (1)
mergesort(right half); ------------(2)
merge(left half, right half);
什么将成为下实现的时间复杂度?
(1)
void mergesort(n elements) {
mergesort(first quarter); ------------ (1)
mergesort(remaining three quarters); ------------(2)
merge(first quarter, remaining three quarters);
(2)
void mergesort(n elements) {
mergesort(first quarter); ------------ (1)
mergesort(second quarter); ------------(2)
mergesort(third quarter); ------------ (3)
mergesort(fourth quarter); ------------(4)
merge(first quarter, second quarter,third quarter, fourth quarter);
请详细说明您是如何找到复杂性的。
这似乎是一个家庭作业问题。没有问题,但至少解释你的想法。我们不是在这里给你一个准备复制粘贴的答案。 –
我有一个微笑,不像作业一样的问题。我计算了复发关系,并且每次都得到了nlogn的答案。发现奇怪。 – Ravindra