セグメント木とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > 百科事典 > セグメント木の意味・解説 

セグメント木

(Segment tree から転送)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2026/02/06 00:01 UTC 版)

セグメント木
種類 二分木
発表時期 1977
発明者 ジョン・ベントリー英語版
ビッグオー記法による計算量 (en
アルゴリズム 平均 最悪の場合
空間 O(n) O(n)
探索 O(logn) O(logn)
挿入 O(logn) O(logn)

セグメント木(せぐめんとき、: segment tree)や区分木(くぶんぎ)は、計算機科学において、区間線分に関する情報を格納するために用いられるデータ構造である。似たデータ構造に区間木がある。

n個の区間の集合 I に対するセグメント木は、O(n log n) の記憶領域を使用し、

セグメント木の構造の図解例。下部に示されたセグメントに対して構築されている。

I を区間、あるいは線分の集合とする。p1, p2, ..., pmを、左から右に並べられた、異なる区間の端点のリストとする。これらの点によって誘導される実数直線の分割を考える。この分割の各領域を「基本区間(elementary intervals)」と呼ぶ。したがって、基本区間は左から順に以下のようになる。

要素として整数、演算として和のモノイドを載せたセグメント木の構造の図解例。配列の区間和(薄墨の部分)を得たい場合、あらかじめ計算した区間に対応するノード(薄墨の9, 17)だけを足せばいい。

セグメント木は線分集合の和集合だけでなく、閉じた演算を持ち、結合法則を満たし、単位元を持つ集合であれば構築することができる(上記例の線分集合 I もこの性質を満たす)。[8] このような代数的構造をモノイドといい、モノイドに対してセグメント木を構成することで、整数・文字列・行列などの集合に対して以下のようなクエリを処理することができる。

具体的な演算とモノイドの対応例
クエリの種類 演算内容 (⋅) 単位元 (e) 備考
範囲合計 (RSQ) 加算 (+) 0 -
範囲最小値 (RMQ)
この節の加筆が望まれています。 2007年11月

セグメント木は、1977年にジョン・ベントリー英語版によってクレーの測度問題英語版(n個の長方形の集合が与えられたとき、それらの和集合の面積を求める問題)の中で発明された。[1]

脚注

注釈

  1. ^ 2N-1 = 2・2k+1-1 = 4・2k-1+4-4 = 4(2k+1)-5 = 4n-5
  2. ^ 例えばn=9(23+1)のとき、N=16(23+1)となり、内部ノード数は15、合計ノード数は16+15=31となる。

出典

  1. ^ a b c (de Berg et al. 2000, p. 229)
  2. ^ a b (de Berg et al. 2000, p. 227)
  3. ^ (de Berg et al. 2000, p. 224)
  4. ^ (de Berg et al. 2000, pp. 225–226)
  5. ^ (de Berg et al. 2000, pp. 226–227)
  6. ^ a b (de Berg et al. 2000, p. 226)
  7. ^ a b (de Berg et al. 2000, p. 230)
  8. ^ セグメント木を使う”. Zenn (2022年5月14日). 2026年1月8日閲覧。
  9. ^ Segment Trees”. hackerearth.com. 2026年1月8日閲覧。
  10. ^ 非再帰セグ木サイコー! 一番すきなセグ木です”. hcpc-hokudai.github.io (2019年11月21日). 2026年1月8日閲覧。
  11. ^ (de Berg et al. 2000, pp. 229–230)
  12. ^ Range Sum Query (動的セグメント木)”. tjkendev.github.io. 2026年1月8日閲覧。
  13. ^ 遅延評価セグメント木をソラで書きたいあなたに”. tsutaj.hatenablog.com (2017年3月30日). 2026年1月8日閲覧。
  14. ^ 双対セグメント木という概念について”. kmyk.github.io (2019年2月22日). 2026年1月8日閲覧。
  15. ^ pythonで永続セグメント木実装”. qiita.com (2021年10月3日). 2026年1月8日閲覧。

引用文献

外部リンク




英和和英テキスト翻訳

英語⇒日本語日本語⇒英語
  •  セグメント木のページへのリンク

辞書ショートカット

すべての辞書の索引

「セグメント木」の関連用語

セグメント木のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



セグメント木のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのセグメント木 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2026 GRAS Group, Inc.RSS