問題タブ [min-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 投票する
2 に答える
1823 参照

data-structures - 最小ヒープ内の最大アイテムがリーフの 1 つになければならないことを証明する

最小ヒープ内の最大アイテムが N 個のアイテムを持つツリーの葉の 1 つになければならないことを証明するにはどうすればよいですか?

最小ヒープの全体的な設計を理解しており、最大アイテムがリーフの 1 つにあることを示す/図を描くことができます (深さ N + 1 のノード > 深さ N のノード)。証明をどのようにフォーマットすればよいかわかりません。

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

java - ArrayList をサブクラス化し、それを要求するにはどうすればよいですかComparable を拡張する必要があります

私がやろうとしていることは明らかだと思いますが、私はジェネリックの専門家ではありません.

コンパイル時に警告が表示されます。

わかりません。私は何が欠けていますか?

最初は、 this.get(i) と this.get(parent) が Comparable のインスタンスであることを確認する必要があると考えていたので、チェックを追加しました。

しかし、それは同じ警告を出します。

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

graph - 有向加重グラフで特定のノードに最も近い n 個のノードを見つける最速の方法

現在、グラフ全体でダイクストラのアルゴリズムを実行し、元のノードからの合計距離によってノードの最小ヒープを形成しています。次に、ヒープから上位 n 個の要素を削除します。

これは非常に非効率的だと思います。最も近い 10 個のノードを見つける必要があり、グラフに 100000 を超えるノードがあるとします。次に、グラフ全体でダイクストラを実行するのは時間の無駄のようです。しかし、問題は、グラフ内のすべてのノードへの最短パスを計算せずに、上位 10 個の最も近いノードを見つけることができる他の方法がわからないことです。

より良い方法はありますか?

0 投票する
2 に答える
251 参照

ios - Objective-C で 2 次元配列をソートするための O(n^2) より優れたアルゴリズム

あるインタビューでこの質問をされたことがあります。私は主に、O(n^2) よりも優れた時間で 2 次元配列をトレースするソリューションを提供することに行き詰まりました。質問は次のとおりです。

これが私が与えた答えです:

どうやら (私が彼の期待する解決策を示していたとしたら) 2 次元配列内の個々の配列が既にソートされているという仮定を利用していたでしょう。上記の解決策は、私のインタビュアーを納得させませんでした。

では、上記のクラスを O(n^2) よりも効率的な方法で使用して、期待される出力を生成するにはどうすればよいでしょうか?

PS: A) サンプル入力内の個々の配列は常にソートされることに注意してください。B) 入力には重複があり、出力には重複が含まれている必要があります。

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

algorithm - 指定された配列からの最小ヒープの作成

プロセスの各段階を示す次のリストから示されるヒープの作成をトレースします。

a. {5, 13, 2, 25, 7, 17, 20, 8, 4} 分のヒープ ここに画像の説明を入力

私はこれを正しくやっているといいのですが。次の問題に進む前に、これが正しいかどうかを確認したいと思いました。コメントやヘルプをいただければ幸いです。

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

heap - 最小ヒープを最大ヒープとして使用することは可能ですか?

minHeap クラスを実装したので、コードを変更せずに minHeap クラスを最大ヒープとして使用できるかどうか興味がありますか?