Data Structures26 min read
Segment Tree Intro
Understand segment trees for fast range queries like sum and minimum, and build a simple tree from scratch.
David Miller
November 4, 2025
3.6k154
Segment tree helps answer range queries fast.
Example questions:
- sum from index 2 to 7?
- minimum in range?
Why needed
Without it:
each query scans range (slow).
With tree:
logarithmic time.
Build simple sum tree
class SegTree:
def __init__(self, arr):
self.n = len(arr)
self.t = [0] * (4*self.n)
self._build(arr, 1, 0, self.n-1)
def _build(self, arr, v, l, r):
if l == r:
self.t[v] = arr[l]
else:
m = (l+r)//2
self._build(arr, v*2, l, m)
self._build(arr, v*2+1, m+1, r)
self.t[v] = self.t[v*2] + self.t[v*2+1]
Graph: segment ranges
flowchart TD
A[0..7]
A --> B[0..3]
A --> C[4..7]
Remember
- segment tree = divide ranges
- good for many queries + updates
#Python#Advanced#Tree