• ベストアンサー

関数の実行速度の改善

http://www.i.u-tokyo.ac.jp/edu/course/m-i/pdf/2007imim.pdf の問題4 (5)についてなのですが、自分で考えてもQは昇順で並んでいるので、Qの全ての要素のアドレスを別の配列に代入し、バイナリサーチをかければ状態によって少しは早くなるかもしれない程度のことしか思い付かず、Qのデータ構造を改良することによってInsertの処理速度を上げる方法が分かりません。 どなたか宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • S117
  • ベストアンサー率40% (18/45)
回答No.1

リスト構造なのでとりあえず挿入そのものはO(1)ですが、挿入位置を探すのに頭からたどっているのでO(N)になりますね。 すぐに思いつくものとしては2分探索木でしょう。 http://ja.wikipedia.org/wiki/2%E5%88%86%E6%8E%A2%E7%B4%A2%E6%9C%A8 この場合、O(log N)が期待できます。

coronalith
質問者

お礼

なるほど、有り難うございました

すると、全ての回答が全文表示されます。

関連するQ&A