這是一個作業問題,我不是在找到complixity,而是在盡我所能!證明修改後快速排序的運行時間= O(Nk)
- 三路分區是對快速排序的修改,它將元素分成小於,等於和大於數據透視的組。只有更小和更大的元素組需要遞歸排序。顯示如果有N個項目但只有k個唯一值(換句話說,有許多重複項),則此修改爲快速排序的運行時間爲O(Nk)。
我嘗試:
樹子程序將在這些指數:
平均情況我認爲是有重複的子程序項目將等於(NK)
- 第一:從0 - 至第(i-1)
- 二:I - (I +( NK-1))
- 第三:(ⅰ+ NK) - (N-1)
- 比較次數=(NK)-1
所以,
T(n) = (n-k)-1 + Sigma from 0 until (n-k-1) [ T(i) + T (i-k)]
然後我「M不知道我怎麼我會繼續:S
這可能是一個非常糟糕的開局,但:$ 希望找到一個幫助
你也可以試試這裏:[理論計算機科學(StackExchange)](http://cstheory.stackexchange.com/)。 – Groo 2011-12-22 11:47:32
快速排序通常只分析一般情況。這是否也是這種情況,或者你說的是最壞的情況? – 2011-12-22 12:07:30
@格羅,看來我正在尋找答案,但thnx! – Sosy 2011-12-22 12:19:04