アイザックソ:
私は、データ構造クラスのコーディングの割り当てをしています。私は基本的に異なるソートアルゴリズムを実装する(選択ソート、クイックソート、等..)を持っているし、実行時間を比較します。
しかし、命令に、それは私が二つの異なるヒープソートアルゴリズムを実装する必要が言います。ここで命令は次のとおりです。
ヒープソート、 `ヒープ初期化」を使用せずに(すなわち、最初は空のヒープに繰り返し数を挿入することによって)
ヒープの初期化を使用してヒープソート
ここでは、私がいないことを確認するものヒープの初期化を意味します。私はそれをGoogleにしようとしたが、私はよく説明するだろう任意のソースを見つけることができませんでした。それは、ヒープの初期化せずに/でソートヒープを実装することで、何を意味するのでしょうか?
私は参考のためにJavaでコーディングしています!
感謝
ソリン:
違いは、初期ヒープを取得する方法です。
https://en.wikipedia.org/wiki/Binary_heap(ヒープセクションの構築)。
あなたは、ヒープに要素を一つずつ挿入します(最初は空)ここで、ウィリアムの方法があります。この1はO(NlogN)です。この1は非初期化バージョンです。
あなたは、配列を取り、いくつかのスワップがヒープにするために作るフロイドのバージョンがあります。この1は、O(N)(数学のチェックウィキペディア)となります。ウィキペディアで利用可能な擬似コード。
全体的な複雑さは、O(NlogN)で抽出プロセスによって駆動されます。