2017-12-16 10 views
0

私は、次の質問から2N/3を取得する方法を考え出した:Max-Heapifyのワーストケース - なぜ2n/3を得ることができますか?

Worst case in Max-Heapify - How do you get 2n/3?

「CLRS、第3版、155ページ、それはそのMAX-HEAPIFYに与えられている:

「子どものサブツリーのサイズは2n/3以下です。最悪の場合は、ツリーの最下位レベルが完全に半分になったときに発生します」。

しかし、ツリーの最下位レベルがちょうど半分フル、 を取得します。

我々は、事前に想定しているので、T(n)が< = T(2N/3)+シータ(1)

は、そのサブツリーの次の再帰呼び出しに、このサブツリーの下レベルは、(すべて満杯です上記の再発を得るために、もう一方の側は空であるが、この側はできるだけいっぱいである)。したがって、次の呼び出しに再発は次のようになります。

T(n)が< = T(N/2)+シータ(1)

毎再帰呼び出し以後同じです。

実際に再発が変わり、どのようにマスター定理を使用できますか?

しかし、a = 1、f(n)= n^0なので、bが何であれ、最悪の場合の実行時間は常にO(lgn)になるので、なぜわからないのですか?何bですか?

おかげ

答えて

0

初めての複雑さが​​ですが、もう一つはO(log_2(n))です。したがって、最悪の場合が最悪です!

関連する問題