我們知道,歸併排序有以下算法的時間複雜度爲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