1
私はJavaでなければなりませんが、スキューヒープのマージプロセスを理解しようとしています。私は、ステップの太字の部分がそれがなぜそのようになっているのか理解できません。java skew heap merging
- 2つのヒープのルーツを比較します。 pを とすると、ルートが小さいほうのヒープになり、q は他のヒープになります。
- 結果の 新しいヒープの名前をrとします。
- rのルートをp (より小さいルート)のルートとし、のrの右 サブツリーをpの左のサブツリーとする。
- ここで、rの左サブツリーを で計算し、pの右サブツリー をqと再帰的にマージします。
は、アルゴリズムを対称軸に沿って変更された(例えば、私は木の鏡面反射を行う)とrの左部分木は、pの右部分木なると、再帰的にRの右側を下にマージしてみましょうことができますか?それは単なる大会ですか、それとも上記のように効率的ですか?
なぜ反射にスキューヒープと関連があると思いますか? – Olaf
私はあなたが何を意味しているのか分かりませんが、私はどのようなタイプのプログラミング用語であっても反映されているわけではありません。私はちょうど大胆なテキストの中で、いつでもあなたは "左"という言葉が "右"と置き換えられていることを理解しています。基本的に、同じサイズの2つの完全なヒープをマージすると、左のサブツリーは非常に深いものになるはずです。そうでなければ、正しいサブツリーがより深いものになります。 – jhlu87
@ jhul87:ありがとう!今私はよく理解する。用語「リフレクション」は、Javaの世界では非常に特殊な意味を持ちますが、これはあなたが記述しているものとはまったく異なります。 – Olaf