2011-11-17 11 views
5

同一であり、ヒープ・ソートの時間を、実行している私たちは、すべての要素がサイズの配列Aに同一であり、nはヒープの並べ替えの時間を実行するとO(n)のは、すべての要素が

あるとき、と言うことができますすべての要素が等しい場合、ヒープはO(n)ステップを要します。ヒープマップの実行時間は、O(n)の最長実行時間です。

答えて

5

1つの比較O(1)後にヒープに要素が追加されると、正しい位置にあることがわかります。

ルートを削除することもO(1)です。テールとルートを入れ替えると、ヒーププロパティはまだ満たされます。

すべての要素はO(n)のヒープに追加され、O(n)では削除されます。だから、のこのケースヒープソートはO(n)です。私はより良いケースを考えることができないので、ヒープソースのベストケースはO(n)でなければなりません。

'Heapsorts best case is O(n)'は英語のような意味です:heapsortが最大でk * n必要なサイズの配列が存在します。それは理論的にはいいですが、実際には、それがどれくらい良いか速いかについてはあまり言いません。

+0

ありがとう.. Ishtar – rakesh

+0

これは正しくありません! http://stackoverflow.com/questions/4589988/lower-bound-on-heapsort – Cheng

+0

@Chengを参照してください。この質問は** best **の場合です。あなたがリンクしている質問は、** worst **の場合です。私が指摘したように、最良のケースは実際には関係ありません。私の答えを改善する方法についての提案があれば教えてください。 – Ishtar

関連する問題