Optimal Finger Search Trees in the Pointer Machine
Gerth Stølting Brodal
BRICS
University of Aarhus
George Lagogiannis Christos Makris Athanasios Tsakalidis Kostas Tsichlas
University of Patras
Dagstuhl seminar on “Data Structures”, March 1, 2002
Optimal Finger Search Trees in the Pointer Machine Gerth Stlting - - PowerPoint PPT Presentation
Optimal Finger Search Trees in the Pointer Machine Gerth Stlting Brodal BRICS University of Aarhus George Lagogiannis Christos Makris Athanasios Tsakalidis Kostas Tsichlas University of Patras Dagstuhl seminar on Data Structures,
University of Patras
Dagstuhl seminar on “Data Structures”, March 1, 2002
1 2 4 8 10 13 16 17 19 22 23 25 26 29 31 32 35 37 39
✻ p1 ❄ Insert(p1, 3) ✻ p2 Delete(p2) ✻ p3 ✻ Search(p3, 36)
Gerth Stølting Brodal Optimal Finger Search Trees in The Pointer Machine
1
1 2 4 8 10 13 16 17 19 22 23 25 26 29 31 32 35 37 39
✻ p1 ❄ Insert(p1, 3) ✻ p2 Delete(p2) ✻ p3 ✻ Search(p3, 36)
1 2 3 4
❄ Ω(2h) h ✻ p Search(p, 24)
1 2 4 8 10 13 16 17 19 22 23 25 26 29 31 32 35 37 39
Huddleston, Mehlhorn ’82
Gerth Stølting Brodal Optimal Finger Search Trees in The Pointer Machine
1
1 2 4 8 10 13 16 17 19 22 23 25 26 29 31 32 35 37 39
✻ p1 ❄ Insert(p1, 3) ✻ p2 Delete(p2) ✻ p3 ✻ Search(p3, 36)
1 2 3 4
❄ Ω(2h) h ✻ p Search(p, 24)
1 2 4 8 10 13 16 17 19 22 23 25 26 29 31 32 35 37 39
Huddleston, Mehlhorn ’82
Gerth Stølting Brodal Optimal Finger Search Trees in The Pointer Machine
1
log log d a)Pointer machine b)Amortized c) O(1) movable fingers d)Comparison RAM e)Word RAM
Gerth Stølting Brodal Optimal Finger Search Trees in The Pointer Machine
2
Gerth Stølting Brodal Optimal Finger Search Trees in The Pointer Machine
3
1 2 3 1 2 4 8 10 13 16 17 19 22 23 25 26 29 31 32 35 37 39
Gerth Stølting Brodal Optimal Finger Search Trees in The Pointer Machine
4
1 2 3
Ω h
i=1 ai
❄ ✻ p Search(p, 24)
1 2 4 8 10 13 16 17 19 22 23 25 26 29 31 32 35 37 39
h+1
i=1 log ai) = O(log d) if ah+1 = aO(1) h
Gerth Stølting Brodal Optimal Finger Search Trees in The Pointer Machine
4
✻ p ✠rebalance
1 2 4 8 10 13 16 17 19 22 23 25 26 29 31 32 35 37 39
Gerth Stølting Brodal Optimal Finger Search Trees in The Pointer Machine
5
✻ p ✠rebalance
1 2 4 8 10 13 16 17 19 22 23 25 26 29 31 32 35 37 39
✛link(v)
✲
✲
Gerth Stølting Brodal Optimal Finger Search Trees in The Pointer Machine
5
✻ p ✠rebalance
1 2 4 8 10 13 16 17 19 22 23 25 26 29 31 32 35 37 39
✛link(v)
✲
✲
Gerth Stølting Brodal Optimal Finger Search Trees in The Pointer Machine
5
rebalance(r) break(r)
Gerth Stølting Brodal Optimal Finger Search Trees in The Pointer Machine
6
. . . . . .
r multi-split(r)
r multi-fusion(r) fusion group G
Gerth Stølting Brodal Optimal Finger Search Trees in The Pointer Machine
7
. . . . . . . . .
≤ 3ai2 ≤ 3ai2 · ai−1 ≤ 3ai2 · ai−12 ≤ 3ai2 ≤ 3ai2
Gerth Stølting Brodal Optimal Finger Search Trees in The Pointer Machine
8
. . . . . . . . . . . . . . . block . . . . . . new/old node group . . . . . .
Gerth Stølting Brodal Optimal Finger Search Trees in The Pointer Machine
9
Gerth Stølting Brodal Optimal Finger Search Trees in The Pointer Machine
10