コミュニティアイコン プチコン 非公式コミュニティ トピック

アバター
こういち ◆.Id/aHiU36hu
2020/7/27 10:28
質問
マージ可能ヒープ
マージ可能ヒープを作ろうと思うのですが、マージ可能ヒープが必要な場面に出会ったことがないため、複数ヒープを持つときのヒープの持ち方で困っています。
最初deque(push,pop,shift,unshiftが可能な配列)で持とうと思いましたが、マージ時に途中の要素を削除する必要があるため、厳しいと思いました。
かと言ってリストで持とうとすると、ランダムアクセスが出来ないので不便な気がします。
ランダムアクセスの必要がないならリストで実装しようと思いますが、ランダムアクセスは必要でしょうか。

コメント

アバター
こういち 2020/7/29 17:57 ◆.Id/aHiU36hu
マージされたヒープはしばらく重複して持っておいて、重複したヒープをまとめて消すサブルーチンを作るってのはどうですかね?
これならランダムアクセス可能で、ヒープ数が一定以上から半分になったらまとめて消せば計算量は償却O(1)

コメントを書く

  • こちらは「プチコン3号」「プチコンBIG」など、プチコンシリーズに関する話題を扱ったコミュニティです
  • プチコンシリーズにまったく関係ない書き込みはご遠慮下さい。削除の対象となります
  • こちらにはその他のゲームや雑談のコミュニティはなく、作る予定もありません (ひとりで管理できないため)。ごめんなさい
  • ユーザー登録なしで書き込みができます
  • 秘密の合い言葉は成りすましの防止 (トリップ機能)、書き込みの編集時の本人認証に使用します
  • 秘密の合い言葉に他人に推測されやすい言葉、他サービスと同じパスワードは入力しないでください。
  • 書き込むと、投稿時に入力したお名前と秘密の暗号が記憶され、ログイン状態になります

- WEB PATIO -