Open In App

Segment Tree

Last Updated : 14 Dec, 2024
Summarize
Comments
Improve
Suggest changes
Like Article
Like
Share
Report
News Follow

Segment Tree is a data structures that allows efficient querying and updating of intervals or segments of an array.

  • It is particularly useful for problems involving range queries, such as finding the sum, minimum, maximum, or any other operation over a specific range of elements in an array.
  • The tree is built recursively by dividing the array into segments until each segment represents a single element.
  • This structure enables fast query and update operations with a time complexity of O(log n), making it a powerful tool in algorithm design and optimization .
Segment-Tree-(1)
Segment Tree

Types of Operations:

The operations that the segment tree can perform must be binary and associative. Some of the examples of operations are:

  • Finding Range Sum Queries
  • Searching index with given prefix sum
  • Finding Range Maximum/Minimum
  • Counting frequency of Range Maximum/Minimum
  • Finding Range GCD/LCM
  • Finding Range AND/OR/XOR
  • Finding number of zeros in the given range or finding index of Kth zero

Basics of Segment Tree:

Lazy Propagation:

Range Queries:

Some interesting problem on Segment Tree:

Applications of Segment Tree:

  • Interval scheduling: Segment trees can be used to efficiently schedule non-overlapping intervals, such as scheduling appointments or allocating resources.
  • Range-based statistics: Segment trees can be used to compute range-based statistics such as variance, standard deviation, and percentiles.
  • Image processing: Segment trees are used in image processing algorithms to divide an image into segments based on color, texture, or other attributes.

Similar Reads

three90RightbarBannerImg