ヒープは何を意味し、初期化しますか?

アイザックソ:

私は、データ構造クラスのコーディングの割り当てをしています。私は基本的に異なるソートアルゴリズムを実装する(選択ソート、クイックソート、等..)を持っているし、実行時間を比較します。

しかし、命令に、それは私が二つの異なるヒープソートアルゴリズムを実装する必要が言います。ここで命令は次のとおりです。

  1. ヒープソート、 `ヒープ初期化」を使用せずに(すなわち、最初は空のヒープに繰り返し数を挿入することによって)

  2. ヒープの初期化を使用してヒープソート

ここでは、私がいないことを確認するものヒープの初期化を意味します。私はそれをGoogleにしようとしたが、私はよく説明するだろう任意のソースを見つけることができませんでした。それは、ヒープの初期化せずに/でソートヒープを実装することで、何を意味するのでしょうか?

私は参考のためにJavaでコーディングしています!

感謝

ソリン:

違いは、初期ヒープを取得する方法です。

https://en.wikipedia.org/wiki/Binary_heap(ヒープセクションの構築)。

あなたは、ヒープに要素を一つずつ挿入します(最初は空)ここで、ウィリアムの方法があります。この1はO(NlogN)です。この1は非初期化バージョンです。

あなたは、配列を取り、いくつかのスワップがヒープにするために作るフロイドのバージョンがあります。この1は、O(N)(数学のチェックウィキペディア)となります。ウィキペディアで利用可能な擬似コード。

全体的な複雑さは、O(NlogN)で抽出プロセスによって駆動されます。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=232424&siteId=1