問題タブ [minmax-heap]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
589 参照

algorithm - Heapsort: 最大ヒープの構築手順の説明

Heap Sort を使用して配列をソートするコードを理解しようとしています (ref - https://www.sanfoundry.com/java-program-implement-heap-sort/ )

「maxheap」関数は、この計算を使用して、ノードの左右の子を取得します (同じことが複数の異なる例/サイトで使用されています)。

int 左 = 2*i;
int 右 = 2*i + 1;

上記の論理/理由は何ですか?

さらに、heapify 関数では、maxheap fn が i = N/2 -> 0 で呼び出されます
(たとえば、i = 0 から N -1 の代わりに)。これが行われる理由についてのアイデアはありますか?

0 投票する
1 に答える
75 参照

python - max_heapify ヒープを下って次のレベルのノードを取得する反復的な方法

再帰の代わりに反復制御ループを作成しようとしています。より効率的であるため、コードが理にかなっている場合は誰かに教えてもらえますか: 再帰バージョン:

反復版(これは間違っていると思いますか??)

反復バージョンの問題点についての提案を得ることができますか

0 投票する
0 に答える
42 参照

java - ヒープ ツリーを使用して辞書を実装するアルゴリズムを設計する

こんにちは、maxheap を構築しようとしていますが、数値の代わりに文字列を使用する方法に行き詰まっています。各ノードに 2 つの文字列 (単語とその定義) を入れたいのですが、たとえば、最初に追加したいノード ("Apple :fruit usally rounded red") をアルファベット順にヒープ化したいと思います。オブジェクトまたは文字列の配列を行う必要がありますか? このコードでどのように使用できますか?