アルゴリズム+データ構造勉強会(13)
- 5. 経路の長さの違い
• B木:経路の長さが同じ
• メリット:計算量が 𝑂(log 𝑛)
• デメリット:データの追加・削除時に木を大きく作り直すことになる
• 二分探索木:経路の長さがバラバラ
• メリット:データの追加・削除を楽に行える
• デメリット:計算量が最大で 𝑂(𝑛)
• 悪いことに、ソート済みの値で木を単純生成するとこうなる
- 6. 子の個数の違い
• B木:最大m個
• メリット:木の大きさはコンパクトに収まる
• 木の作り直しが少なくなるので先のデメリットを和らげる
• デメリット:コーディングが複雑になる
• 二分探索木:左に小さい値1つ、右に大きい値1つ
• メリット:考え方がきわめて単純
• 不具合を起こしにくい
• 日常業務でも人の手で使っている(ログを検索するときにはソートして~~など)
• デメリット:木がすぐ成長する
• つまり末端までたどるのは大変
• 再帰は続くよどこまでも(=再帰で組むとメモリが大変なことになる)