2016-10-19 14 views
-6

我有一個關於算法quicksort的問題。 有人可以解釋我如何得到結果(證明)2T(n/2)+Θ(n)? 而這個結果意味着:T(n-1)+Θ(n)。我該如何證明quicksort的主定理

感謝您的所有答案。

+0

請不要只發布作業問題。如果你被困在某些事情上,說出它是什麼並展示你所做的。 –

+0

這不是一個家庭作業問題它是在書中只是一個諒解問題 – flowers1234

+1

你仍然需要告訴我們你已經在這個問題上做了大量的工作。你也應該告訴我們你的理解是什麼,所以我們不會去了解你已經知道的東西。在這種情況下,你瞭解分區算法嗎?你知道Quicksort基本上是如何將列表分成兩個子列表,然後對每個子列表進行排序? –

回答

2

主定理指出,

對於任何main function

  1. 如果1st condition對於某一常數Epsilon > 0,然後T(n)
  2. 如果2nd condition,則formula
  3. 如果3rd condition,對於某一常數epsilon,如果function對於某一常數c < 1和所有足夠大n,然後T(n)

至於你,
function
a = 2, b = 2
這裏,
Theta (第二種情況)
所以複雜度將是:complexity

對於第二個問題,要了解此功能2nd question,您需要了解分治法。在快速排序中,對於n如果您將最後一個值作爲關鍵點,則項目數將減少,這會將項目數減少到(n-1),現在如果遞歸調用快速排序將最後一個值作爲關鍵點,每次減少一個項目。因此,複雜性將是2nd question,當您將中間值作爲中心時,情況並非如此。