Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Dynamic Dictionaries Primary Operations:  get(key) => search  put(key, element) => insert  remove(key) => delete Additional operations:  ascend()"— Presentation transcript:

1

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

3 Complexity Of Dictionary Operations get(), put() and remove() n is number of elements in dictionary

4 Complexity Of Other Operations ascend(), get(index), remove(index) D is number of buckets

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

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

7 Remove From A Leaf Remove a leaf element. key = 7 20 10 6 28 15 40 30 2535 7 18

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

9 Remove From A Degree 1 Node (contd.) Remove from a degree 1 node. key = 15 20 10 6 28 15 40 30 2535 7 18

10 Remove From A Degree 2 Node Remove from a degree 2 node. key = 10 20 10 6 28 15 40 30 2535 7 18

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

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

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

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

15 Another Remove From A Degree 2 Node Remove from a degree 2 node. key = 20 20 10 6 28 15 40 30 2535 7 18

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

17 Remove From A Degree 2 Node 20 10 6 28 15 40 30 2535 7 18 Replace with largest in left subtree.

18 Remove From A Degree 2 Node 18 10 6 28 15 40 30 2535 7 18 Replace with largest in left subtree.

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

20 Yet Other Operations Priority Queue Motivated Operations:  find max and/or min  remove max and/or min  initialize  meld

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

22 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). 20 10 6 28 15 40 30 25

23 Meld 10 6 28 15 5 1 7 17 12 10 6 2 15 8 17 15 127

24 Meld And Merge Merge 2 sorted lists A and B.  Create binary search trees for A and B.  Meld the trees.  Output in inorder. Comparisons 0 f(m,n) 0 So, using meld, we can merge using f(m,n) comparisons.

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

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

27 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

28 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

29 Balance Factors 00 0 0 1 0 0 1 0 1 This is an AVL tree.

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

31 Proof Of Upper Bound On Height Let N h = min # of nodes in an AVL tree whose height is h. N 0 = 0. N 1 = 1.

32 N h, 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 N h-1 nodes. The subtree whose height is h-2 has N h-2 nodes. So, N h = N h-1 + N h-2 + 1. LR

33 Fibonacci Numbers F 0 = 0, F 1 = 1. F i = F i-1 + F i-2, i > 1. N 0 = 0, N 1 = 1. N h = N h-1 + N h-2 + 1, i > 1. N h = F h+2 – 1. F i ~  i /sqrt(5).   sqrt 

34 AVL Search Tree 00 0 0 1 0 0 1 0 1 10 7 83 1 5 30 40 20 25 35 45 60


Download ppt "Dynamic Dictionaries Primary Operations:  get(key) => search  put(key, element) => insert  remove(key) => delete Additional operations:  ascend()"

Similar presentations


Ads by Google