1 / 32

Dynamic Dictionaries

Dynamic Dictionaries. Primary Operations: get(key) => search put(key, element) => insert remove(key) => delete Additional operations: ascend() get(index) remove(index). n is number of elements in dictionary. Complexity Of Dictionary Operations get(), put() and remove().

lou
Download Presentation

Dynamic Dictionaries

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Dynamic Dictionaries • Primary Operations: • get(key) => search • put(key, element) => insert • remove(key) => delete • Additional operations: • ascend() • get(index) • remove(index)

  2. n is number of elements in dictionary Complexity Of Dictionary Operationsget(), put() and remove()

  3. D is number of buckets Complexity Of Other Operationsascend(), get(index), remove(index)

  4. 20 10 40 6 15 30 25 2 8 The Operation put() 35 Put a pair whose key is 35.

  5. Three cases: • Element is in a leaf. • Element is in a degree 1 node. • Element is in a degree 2 node. The Operation remove()

  6. 20 10 40 6 15 30 18 25 35 2 8 7 Remove From A Leaf Remove a leaf element. key = 7

  7. 20 10 40 6 15 30 18 25 35 2 8 7 Remove From A Degree 1 Node Remove from a degree 1 node. key = 40

  8. 20 10 40 6 15 30 18 25 35 2 8 7 Remove From A Degree 1 Node (contd.) Remove from a degree 1 node. key = 15

  9. 20 10 40 6 15 30 18 25 35 2 8 7 Remove From A Degree 2 Node Remove from a degree 2 node. key = 10

  10. 20 Remove From A Degree 2 Node 10 40 6 15 30 18 25 35 2 8 Replace with largest key in left subtree (or smallest in right subtree). 7

  11. 20 Remove From A Degree 2 Node 10 40 6 15 30 18 25 35 2 8 Replace with largest key in left subtree (or smallest in right subtree). 7

  12. 20 Remove From A Degree 2 Node 8 40 6 15 30 18 25 35 2 8 Replace with largest key in left subtree (or smallest in right subtree). 7

  13. 20 Remove From A Degree 2 Node 8 40 6 15 30 18 25 35 2 8 7 Largest key must be in a leaf or degree 1 node.

  14. 20 10 40 6 15 30 18 25 35 2 8 7 Another Remove From A Degree 2 Node Remove from a degree 2 node. key = 20

  15. 20 Remove From A Degree 2 Node 10 40 6 15 30 18 25 35 2 8 7 Replace with largest in left subtree.

  16. 20 Remove From A Degree 2 Node 10 40 6 15 30 18 25 35 2 8 7 Replace with largest in left subtree.

  17. 18 Remove From A Degree 2 Node 10 40 6 15 30 18 25 35 2 8 7 Replace with largest in left subtree.

  18. 18 Remove From A Degree 2 Node 10 40 6 15 30 25 35 2 8 7 Complexity is O(height).

  19. Yet Other Operations • Priority Queue Motivated Operations: • find max and/or min • remove max and/or min • initialize • meld

  20. 20 10 40 6 15 30 25 2 8 Max And/Or Min • Follow rightmost path to max element. • Follow leftmost path to min element. • Search and/or remove => O(h) time.

  21. 20 10 40 6 15 30 25 2 8 Initialize • Sort n elements. • Initialize search tree. • Output in inorder (O(n)). • Initialize must take O(n log n) time, because it isn’t possible to sort faster than O(n log n).

  22. 5 10 1 12 6 15 10 17 7 2 8 6 17 8 2 15 7 12 1 5 Meld

  23. Meld And Merge • Worst-case number of comparisons to merge two sorted lists of size n each is 2n-1. • So, complexity of melding two binary search trees of size n each is W(n). • So, logarithmic time melding isn’t possible.

  24. 8 10 2 15 1 6 15 1 6 10 2 8 O(log n) Height Trees • Full binary trees. • Exist only when n = 2k –1. • Complete binary trees. • Exist for all n. • Cannot insert/delete in O(log n) time. = +

  25. Balanced Search Trees • Height balanced. • AVL (Adelson-Velsky and Landis) trees • Weight Balanced. • Degree Balanced. • 2-3 trees • 2-3-4 trees • red-black trees • B-trees

  26. AVL Tree • binary tree • for every node x, define its balance factor balance factor of x = height of left subtree of x – height of right subtree of x • balance factor of every node x is – 1, 0, or 1

  27. -1 1 1 Balance Factors -1 0 1 0 0 -1 0 This is an AVL tree. 0 0 0

  28. Height Of An AVL Tree The height of an AVL tree that has n nodes is at most 1.44 log2 (n+2). The height of every n node binary tree is at least log2 (n+1). log2 (n+1) <= height <=1.44 log2 (n+2)

  29. Proof Of Upper Bound On Height • Let Nh = min # of nodes in an AVL tree whose height is h. • N0 = 0. • N1 = 1.

  30. L R Nh, h > 1 • Both L and R are AVL trees. • The height of one is h-1. • The height of the other is h-2. • The subtree whose height is h-1 has Nh-1nodes. • The subtree whose height is h-2 has Nh-2nodes. • So, Nh =Nh-1 + Nh-2 + 1.

  31. Fibonacci Numbers • F0 = 0, F1 = 1. • Fi =Fi-1 + Fi-2 , i > 1. • N0 = 0, N1 = 1. • Nh =Nh-1 + Nh-2 + 1, i > 1. • Nh =Fh+2 – 1. • Fi ~ fi/sqrt(5). • f = (1 + sqrt(5))/2.

  32. -1 10 1 1 7 40 -1 0 1 0 45 3 8 30 0 -1 0 0 0 60 35 1 20 5 0 25 AVL Search Tree

More Related