タグ

ブックマーク / www.moon.sannet.ne.jp (1)

  • B-Tree by Java -- B木のすごく簡単な実装

    B木(B-Tree)とは、 ファイルシステムやデータベースの実装の基礎となる平衡探索木です。 平衡探索木では、要素の検索・挿入・削除などの操作が、 いかなる場合でも \(O(\log n)\) の計算量で行えます(\(n\) は要素数)。 何の工夫もしない単なる2分探索木では、 挿入や削除のパターンによっては木の茂り方のバランスが崩れてしまい、 各種操作に \(O(n)\) の計算量が必要になる場合があります。 データベースでは、B木の検索の計算量が \(O(\log n)\) であることを利用してインデックス(索引)を作ります。 インデックスを使うと、 通常の検索よりも速くデータにアクセス出来るようになります。 ちなみに、B木と同じ平衡探索木の 赤黒木 や AVL木 も各種操作の計算量は、いかなる場合でも \(O(\log n)\) ですが、 これらは2分木で実現されており、完全にはバラ

    B-Tree by Java -- B木のすごく簡単な実装
  • 1