this is a slide
play

This is a slide Group Philsophy Binary Search Tree (BST) A binary - PowerPoint PPT Presentation

This is a slide Group Philsophy Binary Search Tree (BST) A binary search tree 12 5 15 3 8 16 17 4 6 9 7 Binary Search Tree 2 Construct binary search tree Input[2, 4, 5, 1, 3] 1 4 3 5 O(logN) What if the input


  1. This is a slide Group Phil♂sophy

  2. Binary Search Tree (BST)

  3. A binary search tree 12 5 15 3 8 16 17 4 6 9 7

  4. Binary Search Tree 2 • Construct binary search tree • Input[2, 4, 5, 1, 3] 1 4 3 5 • O(logN)

  5. • What if the input is [1, 2, 3, 4, 5] ? 1 2 3 4 5 • A linked list. • Only O(N)

  6. Some Self-Balancing Binary Search Trees • AVL(Adelson-Velskii & Landis Tree) • Red Black Tree • Size Balanced Tree • Treap

  7. Treap a randomized binary search tree

  8. A tree or a heap? 4 15 2 5 • Key [4, 2, 1, 3, 5] 11 19 • Priority [15, 11, 13, 18, 19] 1 3 18 13

  9. Rotate right 4 2 rotate 2 5 1 4 left rotate 1 3 3 5

  10. Rotate 4 2 30 10 2 5 1 4 50 10 30 20 right rotate 1 3 3 5 20 40 40 50

  11. Insert Lets build a treap together!

  12. Insert 2 Key = 4 10 Priority = 15 Left rotate 3 1 5 20 18 Right rotate 5 3 6 30 40 4 15

  13. Search 2 10 Just as you do in the BST 1 4 18 15 3 5 20 30 6 40

  14. Delete 2 10 Just do it! 1 6 Rotate then do it 15 12 4 7 15 13 8 3 5 40 19 30

  15. 2 10 Find node 6 1 6 Right rotate 15 12 6 Left rotate 6 Delete 6 4 7 15 13 8 3 5 40 19 30

  16. Deeper understanding of treap

  17. • DEF. mean that i is a proper ancestor of k. i  k • If i is proper ancestor of k,   i k 1 • Otherwise   i k 0 Input array is [1, 2, 3, 4, 5] 2 Input priority is [0.3, 0.1, 0.8, 0.5, 0.9] 0.1 1 4     2 4 1 2 5 1 0.3 0.5     2 3 1 4 3 1 3 5     1 4 0 3 5 0 0.8 0.9

  18. • The depth of node k:                      depth k i k E E E i k Pr i k    i A i A i A

  19. • DEF. X(i,k) denotes set of nodes which key value is between i and k. • For input array [2, 3, 1, 5, 4] • X(2,5)={2,3,4,5} • X(1,3)={1,2,3}

  20. i  • Lemma. For all , i has the smallest priority in X(i,k)   k i k 1 iff

  21.  1  if i k      k i 1     i k     Pr i k 0 if i k    k i 1  1  if i k     i k 1     i k 1 k 1 1 n 1              E depth k Pr i k       i k 1 k i 1 i k 1      i A i A i 1 i k 1   k n k 1 1 1     j j   j 2 i 2     H 1 H 1   k n k 1        ln k ln n k 1 2   2 ln n 2

  22. • depth(k) = O(logN) in expectation. • search(k) takes time O(depth(k)) = O(logN) in expectation. • insert(k) takes time O(depth(k))=O(logN) in expectation • …

  23. • Lemma. k is a node in treap, then          E max depth k O log N

  24. Why we are using a treap? • Easy to understand • Easy to use • Well reliability • Average depth O(logN)

  25. Thank you Q & A

Recommend


More recommend