Horje
Segment Tree

Segment Tree is a versatile data structure used in computer science and 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

What is Segment Tree?

Segment Tree is a data structure that stores data about range of elements in nodes as a tree. It is mostly used to handle range queries with updates in an efficient manner. For example, we can perform a range summation of an array between the range L to R while also modifying the array from range L to R all in log(N) time complexity.

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

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.

Basics of Segment Tree:

Lazy Propagation:

Range Queries:

Some interesting problem on Segment Tree:




Reffered: https://www.geeksforgeeks.org


DSA

Related
P vs NP Problems P vs NP Problems
Find maximum element after K increments Find maximum element after K increments
Quadruples with unequal sum of first two and last two elements Quadruples with unequal sum of first two and last two elements
What to do if I get stuck in Data Structures and Algorithms (DSA)? What to do if I get stuck in Data Structures and Algorithms (DSA)?
Maximum profit Maximum profit

Type:
Geek
Category:
Coding
Sub Category:
Tutorial
Uploaded by:
Admin
Views:
16