algorithms and data structures - balanced trees (avl-trees...

55
Algorithms and Data Structures Balanced Trees (AVL-Trees, (a,b)-Trees, Red-Black-Trees) Albert-Ludwigs-Universität Freiburg Prof. Dr. Rolf Backofen Bioinformatics Group / Department of Computer Science Algorithms and Data Structures, January 2019

Upload: others

Post on 25-Jul-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Algorithms and Data Structures - Balanced Trees (AVL-Trees ...ac.informatik.uni-freiburg.de/teaching/ws19_20/ad/slides/AlgoDatWS… · AVL-Trees (a,b)-Trees Introduction RuntimeComplexity

Algorithms and Data StructuresBalanced Trees (AVL-Trees, (a,b)-Trees, Red-Black-Trees)

Albert-Ludwigs-Universität Freiburg

Prof. Dr. Rolf BackofenBioinformatics Group / Department of Computer ScienceAlgorithms and Data Structures, January 2019

Page 2: Algorithms and Data Structures - Balanced Trees (AVL-Trees ...ac.informatik.uni-freiburg.de/teaching/ws19_20/ad/slides/AlgoDatWS… · AVL-Trees (a,b)-Trees Introduction RuntimeComplexity

Structure

Balanced TreesMotivationAVL-Trees(a,b)-Trees

IntroductionRuntime Complexity

Red-Black Trees

January 2019 Prof. Dr. Rolf Backofen – Bioinformatics - University Freiburg - Germany 2 / 55

Page 3: Algorithms and Data Structures - Balanced Trees (AVL-Trees ...ac.informatik.uni-freiburg.de/teaching/ws19_20/ad/slides/AlgoDatWS… · AVL-Trees (a,b)-Trees Introduction RuntimeComplexity

Balanced TreesMotivation

Binary search tree:With BinarySearchTree we could perform an lookup orinsert in O(d), with d being the depth of the treeBest case: d ∈O(logn), keys are inserted randomlyWorst case: d ∈O(n), keys are inserted in ascending /descending order (20,19,18, . . . )

January 2019 Prof. Dr. Rolf Backofen – Bioinformatics - University Freiburg - Germany 3 / 55

Page 4: Algorithms and Data Structures - Balanced Trees (AVL-Trees ...ac.informatik.uni-freiburg.de/teaching/ws19_20/ad/slides/AlgoDatWS… · AVL-Trees (a,b)-Trees Introduction RuntimeComplexity

Balanced TreesMotivation

Gnarley trees:

http://people.ksp.sk/~kuko/bak

Figure: Binary search tree withrandom insert [Gna]

Figure: Binary search tree withdescending insert [Gna]

January 2019 Prof. Dr. Rolf Backofen – Bioinformatics - University Freiburg - Germany 4 / 55

Page 5: Algorithms and Data Structures - Balanced Trees (AVL-Trees ...ac.informatik.uni-freiburg.de/teaching/ws19_20/ad/slides/AlgoDatWS… · AVL-Trees (a,b)-Trees Introduction RuntimeComplexity

Balanced TreesMotivation

Balanced trees:We do not want to rely on certain properties of our key setWe explicitly want a depth of O(logn)We rebalance the tree from time to time

January 2019 Prof. Dr. Rolf Backofen – Bioinformatics - University Freiburg - Germany 5 / 55

Page 6: Algorithms and Data Structures - Balanced Trees (AVL-Trees ...ac.informatik.uni-freiburg.de/teaching/ws19_20/ad/slides/AlgoDatWS… · AVL-Trees (a,b)-Trees Introduction RuntimeComplexity

Balanced TreesMotivation

How do we get a depth of O(logn)?AVL-Tree:

Binary tree with 2 children per nodeBalancing via “rotation”

(a,b)-Tree or B-Tree:Node has between a and b childrenBalancing through splitting and merging nodesUsed in databases and file systems

Red-Black-Tree:Binary tree with “black” and “red” nodesBalancing through “rotation” and “recoloring”Can be interpreted as (2, 4)-treeUsed in C++ std::map and Java SortedMap

January 2019 Prof. Dr. Rolf Backofen – Bioinformatics - University Freiburg - Germany 6 / 55

Page 7: Algorithms and Data Structures - Balanced Trees (AVL-Trees ...ac.informatik.uni-freiburg.de/teaching/ws19_20/ad/slides/AlgoDatWS… · AVL-Trees (a,b)-Trees Introduction RuntimeComplexity

Balanced TreesAVL-Tree

AVL-Tree:Gregory Maximovich Adelson-Velskii, YevgeniyMikhailovlovich Landis (1963)Search tree with modified insert and remove operationswhile satisfying a depth conditionPrevents degeneration of the search treeHeight difference of left and right subtree is at maximumoneWith that the height of the search tree is always O(logn)We can perform all basic operations in O(logn)

January 2019 Prof. Dr. Rolf Backofen – Bioinformatics - University Freiburg - Germany 8 / 55

Page 8: Algorithms and Data Structures - Balanced Trees (AVL-Trees ...ac.informatik.uni-freiburg.de/teaching/ws19_20/ad/slides/AlgoDatWS… · AVL-Trees (a,b)-Trees Introduction RuntimeComplexity

Balanced TreesAVL-Tree

80

40

20

10

30

60

50

70

120

100

90

110

140

130

150

Figure: Example of an AVL-Tree

January 2019 Prof. Dr. Rolf Backofen – Bioinformatics - University Freiburg - Germany 9 / 55

Page 9: Algorithms and Data Structures - Balanced Trees (AVL-Trees ...ac.informatik.uni-freiburg.de/teaching/ws19_20/ad/slides/AlgoDatWS… · AVL-Trees (a,b)-Trees Introduction RuntimeComplexity

Balanced TreesAVL-Tree

8-2

40

20

10

30

60

50

70

140

Figure: Not an AVL-Tree

January 2019 Prof. Dr. Rolf Backofen – Bioinformatics - University Freiburg - Germany 10 / 55

Page 10: Algorithms and Data Structures - Balanced Trees (AVL-Trees ...ac.informatik.uni-freiburg.de/teaching/ws19_20/ad/slides/AlgoDatWS… · AVL-Trees (a,b)-Trees Introduction RuntimeComplexity

Balanced TreesAVL-Tree

17-1

50

30

20

40

8-1

60

470

430

600

Figure: Another example of an AVL-Tree

January 2019 Prof. Dr. Rolf Backofen – Bioinformatics - University Freiburg - Germany 11 / 55

Page 11: Algorithms and Data Structures - Balanced Trees (AVL-Trees ...ac.informatik.uni-freiburg.de/teaching/ws19_20/ad/slides/AlgoDatWS… · AVL-Trees (a,b)-Trees Introduction RuntimeComplexity

Balanced TreesAVL-Tree - Rebalancing

Rotation:y

x

A B

C

Figure: Before rotating

x

A

y

B C

Figure: After rotating

Central operation of rebalancingAfter rotation to the right:

Subtree A is a layer higher and subtree C a layer lowerThe parent child relations between nodes x and y havebeen swapped

January 2019 Prof. Dr. Rolf Backofen – Bioinformatics - University Freiburg - Germany 12 / 55

Page 12: Algorithms and Data Structures - Balanced Trees (AVL-Trees ...ac.informatik.uni-freiburg.de/teaching/ws19_20/ad/slides/AlgoDatWS… · AVL-Trees (a,b)-Trees Introduction RuntimeComplexity

Balanced TreesAVL-Tree - Rebalancing

AVL-Tree:If a height difference of ±2 occurs on an insert or removeoperation the tree is rebalancedMany different cases of rebalancingExample: insert of 1,2,3, . . .

Figure: Inserting 1, . . . ,10 into an AVL-tree [Gna]

January 2019 Prof. Dr. Rolf Backofen – Bioinformatics - University Freiburg - Germany 13 / 55

Page 13: Algorithms and Data Structures - Balanced Trees (AVL-Trees ...ac.informatik.uni-freiburg.de/teaching/ws19_20/ad/slides/AlgoDatWS… · AVL-Trees (a,b)-Trees Introduction RuntimeComplexity

Balanced TreesAVL-Tree - Summary

Summary:Historical the first search tree providing guaranteedinsert, remove and lookup in O(logn)However not amortized update costs of O(1)Additional memory costs: We have to save a heightdifference for every nodeBetter (and easier) to implement are (a,b)-trees

January 2019 Prof. Dr. Rolf Backofen – Bioinformatics - University Freiburg - Germany 14 / 55

Page 14: Algorithms and Data Structures - Balanced Trees (AVL-Trees ...ac.informatik.uni-freiburg.de/teaching/ws19_20/ad/slides/AlgoDatWS… · AVL-Trees (a,b)-Trees Introduction RuntimeComplexity

(a,b)-TreesIntroduction

(a,b)-Tree:Also known as b-tree (b for “balanced”)Used in databases and file systems

Idea:Save a varying number of elements per nodeSo we have space for elements on an insert and balanceoperation

January 2019 Prof. Dr. Rolf Backofen – Bioinformatics - University Freiburg - Germany 16 / 55

Page 15: Algorithms and Data Structures - Balanced Trees (AVL-Trees ...ac.informatik.uni-freiburg.de/teaching/ws19_20/ad/slides/AlgoDatWS… · AVL-Trees (a,b)-Trees Introduction RuntimeComplexity

(a,b)-TreesIntroduction

(a,b)-Tree:All leaves have the same depthEach inner node has ≥ a and ≤ b nodes(Only the root node may have less nodes)

2 10 18

Each node with n children is called “node of degree n” andholds n−1 sorted elementsSubtrees are located “between” the elementsWe require: a≥ 2 and b≥ 2a−1

January 2019 Prof. Dr. Rolf Backofen – Bioinformatics - University Freiburg - Germany 17 / 55

Page 16: Algorithms and Data Structures - Balanced Trees (AVL-Trees ...ac.informatik.uni-freiburg.de/teaching/ws19_20/ad/slides/AlgoDatWS… · AVL-Trees (a,b)-Trees Introduction RuntimeComplexity

(a,b)-TreesIntroduction

(2,4)-Tree:

23

2

1

10

3 5 9

18

15 20 22

25

24

33

27 37 42

Figure: Example of an (2,4)-tree

(2,4)-tree with depth of 3Each node has between 2 and 4 children (1 to 3 elements)

January 2019 Prof. Dr. Rolf Backofen – Bioinformatics - University Freiburg - Germany 18 / 55

Page 17: Algorithms and Data Structures - Balanced Trees (AVL-Trees ...ac.informatik.uni-freiburg.de/teaching/ws19_20/ad/slides/AlgoDatWS… · AVL-Trees (a,b)-Trees Introduction RuntimeComplexity

(a,b)-TreesIntroduction

Not an (2,4)-Tree:23

2

1

0 3

18

5 9

10

15

24

20 22 25

33

27

Figure: Not an (2,4)-tree

Invalid sortingDegree of node too large / too smallLeaves on different levels

January 2019 Prof. Dr. Rolf Backofen – Bioinformatics - University Freiburg - Germany 19 / 55

Page 18: Algorithms and Data Structures - Balanced Trees (AVL-Trees ...ac.informatik.uni-freiburg.de/teaching/ws19_20/ad/slides/AlgoDatWS… · AVL-Trees (a,b)-Trees Introduction RuntimeComplexity

(a,b)-TreesImplementation - Lookup

Searching an element: (lookup)The same algorithm as in BinarySearchTreeSearching from the root downwardsThe keys at each node set the path

Figure: (3,5)-Tree [Gna]

January 2019 Prof. Dr. Rolf Backofen – Bioinformatics - University Freiburg - Germany 20 / 55

Page 19: Algorithms and Data Structures - Balanced Trees (AVL-Trees ...ac.informatik.uni-freiburg.de/teaching/ws19_20/ad/slides/AlgoDatWS… · AVL-Trees (a,b)-Trees Introduction RuntimeComplexity

(a,b)-TreesImplementation - Insert

Inserting an element: (insert)Search the position to insert the key intoThis position will always be an leafInsert the element into the treeAttention: As a result node can overflow by one element(Degree b +1)Then we split the node

January 2019 Prof. Dr. Rolf Backofen – Bioinformatics - University Freiburg - Germany 21 / 55

Page 20: Algorithms and Data Structures - Balanced Trees (AVL-Trees ...ac.informatik.uni-freiburg.de/teaching/ws19_20/ad/slides/AlgoDatWS… · AVL-Trees (a,b)-Trees Introduction RuntimeComplexity

(a,b)-TreesImplementation - Insert

Inserting an element: (insert)

2 10 15 24

15

2 10 24

Figure: Splitting a node

If the degree is higher than b +1 we split the nodeThis results in a node with ceil

(b−12

)elements, a node with

floor(

b−12

)elements and one element for the parent node

Thats why we have the limit b≥ 2a−1

January 2019 Prof. Dr. Rolf Backofen – Bioinformatics - University Freiburg - Germany 22 / 55

Page 21: Algorithms and Data Structures - Balanced Trees (AVL-Trees ...ac.informatik.uni-freiburg.de/teaching/ws19_20/ad/slides/AlgoDatWS… · AVL-Trees (a,b)-Trees Introduction RuntimeComplexity

(a,b)-TreesImplementation - Insert

Inserting an element: (insert)If the degree is higher than b +1 we split the nodeNow the parent node can be of a higher degree than b +1We split the parent nodes the same wayIf we split the root node we create a new parent root node(The tree is now one level deeper)

January 2019 Prof. Dr. Rolf Backofen – Bioinformatics - University Freiburg - Germany 23 / 55

Page 22: Algorithms and Data Structures - Balanced Trees (AVL-Trees ...ac.informatik.uni-freiburg.de/teaching/ws19_20/ad/slides/AlgoDatWS… · AVL-Trees (a,b)-Trees Introduction RuntimeComplexity

(a,b)-TreesImplementation - Remove

Removing an element: (remove)Search the element in O(logn) timeCase 1: The element is contained by a leaf

Remove elementCase 2: The element is contained by an inner node

Search the successor in the right subtreeThe successor is always contained by a leafReplace the element with its successor and delete thesuccessor from the leaf

Attention: The leaf might be too small (degree of a−1)⇒We rebalance the tree

January 2019 Prof. Dr. Rolf Backofen – Bioinformatics - University Freiburg - Germany 24 / 55

Page 23: Algorithms and Data Structures - Balanced Trees (AVL-Trees ...ac.informatik.uni-freiburg.de/teaching/ws19_20/ad/slides/AlgoDatWS… · AVL-Trees (a,b)-Trees Introduction RuntimeComplexity

(a,b)-TreesImplementation - Remove

Removing an element: (remove)Attention: The leaf might be too small (degree of a−1)⇒We rebalance the tree

Case a: If the left or right neighbour node has a degreegreater than a we borrow one element from this node

15

2 7 10

10

2 7 15

Figure: Borrow an element

January 2019 Prof. Dr. Rolf Backofen – Bioinformatics - University Freiburg - Germany 25 / 55

Page 24: Algorithms and Data Structures - Balanced Trees (AVL-Trees ...ac.informatik.uni-freiburg.de/teaching/ws19_20/ad/slides/AlgoDatWS… · AVL-Trees (a,b)-Trees Introduction RuntimeComplexity

(a,b)-TreesImplementation - Remove

Removing an element: (remove)Attention: The leaf might be too small (degree of a−1)⇒We rebalance the tree

Case b: We merge the node with its right or left neighbour

23

17

⇒17 23

Figure: Merge two nodes

January 2019 Prof. Dr. Rolf Backofen – Bioinformatics - University Freiburg - Germany 26 / 55

Page 25: Algorithms and Data Structures - Balanced Trees (AVL-Trees ...ac.informatik.uni-freiburg.de/teaching/ws19_20/ad/slides/AlgoDatWS… · AVL-Trees (a,b)-Trees Introduction RuntimeComplexity

(a,b)-TreesImplementation - Remove

Removing an element: (remove)Now the parent node can be of degree a−1We merge parent nodes the same wayIf the root has only a single child

Remove the rootDefine sole child as new rootThe tree shrinks by one level

January 2019 Prof. Dr. Rolf Backofen – Bioinformatics - University Freiburg - Germany 27 / 55

Page 26: Algorithms and Data Structures - Balanced Trees (AVL-Trees ...ac.informatik.uni-freiburg.de/teaching/ws19_20/ad/slides/AlgoDatWS… · AVL-Trees (a,b)-Trees Introduction RuntimeComplexity

(a,b)-TreesRuntime Complexity

Runtime complexity of lookup, insert and remove:All operations in O(d) with d being the depth of the treeEach node (except the root) has more than a children⇒ n≥ ad−1 and d ≤ 1+ loga n = O(logan)

In detail:lookup always takes Θ(d)insert and remove often require only O(1) timeWorst case: split or merge all nodes on path up to the rootTherefore instead of b≥ 2a−1 we need b≥ 2a

January 2019 Prof. Dr. Rolf Backofen – Bioinformatics - University Freiburg - Germany 28 / 55

Page 27: Algorithms and Data Structures - Balanced Trees (AVL-Trees ...ac.informatik.uni-freiburg.de/teaching/ws19_20/ad/slides/AlgoDatWS… · AVL-Trees (a,b)-Trees Introduction RuntimeComplexity

(a,b)-TreesRuntime Complexity - Counter-example for (2,3)-Tree

Counter example (2,3)-Tree:Before executing delete(11)

8

4

2

1 3

6

5 7

12

10

9 11

14

13 15

Figure: Normal (2,3)-Tree

January 2019 Prof. Dr. Rolf Backofen – Bioinformatics - University Freiburg - Germany 29 / 55

Page 28: Algorithms and Data Structures - Balanced Trees (AVL-Trees ...ac.informatik.uni-freiburg.de/teaching/ws19_20/ad/slides/AlgoDatWS… · AVL-Trees (a,b)-Trees Introduction RuntimeComplexity

(a,b)-TreesRuntime Complexity - Counter example for (2,3)-Tree

Counter example (2,3)-Tree:Executing delete(11)

8

4

2

1 3

6

5 7

12

10

9

14

13 15

Figure: (2,3)-Tree - Delete step 1

January 2019 Prof. Dr. Rolf Backofen – Bioinformatics - University Freiburg - Germany 30 / 55

Page 29: Algorithms and Data Structures - Balanced Trees (AVL-Trees ...ac.informatik.uni-freiburg.de/teaching/ws19_20/ad/slides/AlgoDatWS… · AVL-Trees (a,b)-Trees Introduction RuntimeComplexity

(a,b)-TreesRuntime Complexity - Counter example for (2,3)-Tree

Counter example (2,3)-Tree:Executing delete(11)

8

4

2

1 3

6

5 7

12

9 10

14

13 15

Figure: (2,3)-Tree - Delete step 2

January 2019 Prof. Dr. Rolf Backofen – Bioinformatics - University Freiburg - Germany 31 / 55

Page 30: Algorithms and Data Structures - Balanced Trees (AVL-Trees ...ac.informatik.uni-freiburg.de/teaching/ws19_20/ad/slides/AlgoDatWS… · AVL-Trees (a,b)-Trees Introduction RuntimeComplexity

(a,b)-TreesRuntime Complexity - Counter example for (2,3)-Tree

Counter example (2,3)-Tree:Executing delete(11)

8

4

2

1 3

6

5 7

12

9 10

14

13 15

Figure: (2,3)-Tree - Delete step 3

January 2019 Prof. Dr. Rolf Backofen – Bioinformatics - University Freiburg - Germany 32 / 55

Page 31: Algorithms and Data Structures - Balanced Trees (AVL-Trees ...ac.informatik.uni-freiburg.de/teaching/ws19_20/ad/slides/AlgoDatWS… · AVL-Trees (a,b)-Trees Introduction RuntimeComplexity

(a,b)-TreesRuntime Complexity - Counter example for (2,3)-Tree

Counter example (2,3)-Tree:Executed delete(11)

4

2

1 3

8

6

5 7

12

9 10

14

13 15

Figure: (2,3)-Tree - Delete step 4

January 2019 Prof. Dr. Rolf Backofen – Bioinformatics - University Freiburg - Germany 33 / 55

Page 32: Algorithms and Data Structures - Balanced Trees (AVL-Trees ...ac.informatik.uni-freiburg.de/teaching/ws19_20/ad/slides/AlgoDatWS… · AVL-Trees (a,b)-Trees Introduction RuntimeComplexity

(a,b)-TreesRuntime Complexity - Counter example for (2,3)-Tree

Counter example (2,3)-Tree:Executing insert(11)

4

2

1 3

8

6

5 7

12

9 10 11

14

13 15

Figure: (2,3)-Tree - Insert step 1

January 2019 Prof. Dr. Rolf Backofen – Bioinformatics - University Freiburg - Germany 34 / 55

Page 33: Algorithms and Data Structures - Balanced Trees (AVL-Trees ...ac.informatik.uni-freiburg.de/teaching/ws19_20/ad/slides/AlgoDatWS… · AVL-Trees (a,b)-Trees Introduction RuntimeComplexity

(a,b)-TreesRuntime Complexity - Counter example for (2,3)-Tree

Counter example (2,3)-Tree:Executing insert(11)

4

2

1 3

8

6

5 7

10

9

12

11

14

13 15

Figure: (2,3)-Tree - Insert step 2

January 2019 Prof. Dr. Rolf Backofen – Bioinformatics - University Freiburg - Germany 35 / 55

Page 34: Algorithms and Data Structures - Balanced Trees (AVL-Trees ...ac.informatik.uni-freiburg.de/teaching/ws19_20/ad/slides/AlgoDatWS… · AVL-Trees (a,b)-Trees Introduction RuntimeComplexity

(a,b)-TreesRuntime Complexity - Counter example for (2,3)-Tree

Counter example (2,3)-Tree:Executing insert(11)

4

2

1 3

8

6

5 7

12

10

9 11

14

13 15

Figure: (2,3)-Tree - Insert step 3

January 2019 Prof. Dr. Rolf Backofen – Bioinformatics - University Freiburg - Germany 36 / 55

Page 35: Algorithms and Data Structures - Balanced Trees (AVL-Trees ...ac.informatik.uni-freiburg.de/teaching/ws19_20/ad/slides/AlgoDatWS… · AVL-Trees (a,b)-Trees Introduction RuntimeComplexity

(a,b)-TreesRuntime Complexity - Counter example for (2,3)-Tree

Counter example (2,3)-Tree:Executed insert(11)

8

4

2

1 3

6

5 7

12

10

9 11

14

13 15

Figure: (2,3)-Tree - Insert step 4

January 2019 Prof. Dr. Rolf Backofen – Bioinformatics - University Freiburg - Germany 37 / 55

Page 36: Algorithms and Data Structures - Balanced Trees (AVL-Trees ...ac.informatik.uni-freiburg.de/teaching/ws19_20/ad/slides/AlgoDatWS… · AVL-Trees (a,b)-Trees Introduction RuntimeComplexity

(a,b)-TreesRuntime Complexity - Counter example for (2,3)-Tree

Counter example (2,3)-Tree:We are exactly where we startedIf b = 2a−1 then we can create asequence of insert and removeoperations where each operationcosts O(logn)We need b≥ 2a instead ofb≥ 2a−1

8

4

2

1 3

6

5 7

12

10

9 11

14

13 15

Figure: (2,3)-Tree

January 2019 Prof. Dr. Rolf Backofen – Bioinformatics - University Freiburg - Germany 38 / 55

Page 37: Algorithms and Data Structures - Balanced Trees (AVL-Trees ...ac.informatik.uni-freiburg.de/teaching/ws19_20/ad/slides/AlgoDatWS… · AVL-Trees (a,b)-Trees Introduction RuntimeComplexity

(a,b)-TreesRuntime Complexity - (2,4)-Tree

(2,4)-Tree:If all nodes have 2 children we have to merge the nodes upto the root on a remove operationIf all nodes have 4 children we have to split the nodes up tothe root on a insert operationIf all nodes have 3 children it takes some time to reach oneof the previous two states

⇒ Nodes of degree 3 are stableNeither an insert nor a remove operation triggerrebalancing operations

January 2019 Prof. Dr. Rolf Backofen – Bioinformatics - University Freiburg - Germany 39 / 55

Page 38: Algorithms and Data Structures - Balanced Trees (AVL-Trees ...ac.informatik.uni-freiburg.de/teaching/ws19_20/ad/slides/AlgoDatWS… · AVL-Trees (a,b)-Trees Introduction RuntimeComplexity

(a,b)-TreesRuntime Complexity - (2,4)-Tree

(2,4)-Tree:Idea:

After an expensive operation the tree is in a stable stateIt takes some time until the next expensive operation occurs

Like with dynamic arrays:Reallocation is expensive but it takes some time until thenext expensive operation occursIf we overallocate clever we have an amortized runtime ofO(1)

January 2019 Prof. Dr. Rolf Backofen – Bioinformatics - University Freiburg - Germany 40 / 55

Page 39: Algorithms and Data Structures - Balanced Trees (AVL-Trees ...ac.informatik.uni-freiburg.de/teaching/ws19_20/ad/slides/AlgoDatWS… · AVL-Trees (a,b)-Trees Introduction RuntimeComplexity

(a,b)-TreesRuntime Complexity - (2,4)-Tree

Terminology:We analyze a sequence of n operationsLet Φi be the potential of the tree after the i-th operationΦi = the number of stable nodes with degree 3Empty tree has 0 nodes: Φ = 0

January 2019 Prof. Dr. Rolf Backofen – Bioinformatics - University Freiburg - Germany 41 / 55

Page 40: Algorithms and Data Structures - Balanced Trees (AVL-Trees ...ac.informatik.uni-freiburg.de/teaching/ws19_20/ad/slides/AlgoDatWS… · AVL-Trees (a,b)-Trees Introduction RuntimeComplexity

(a,b)-TreesRuntime Complexity - (2,4)-Tree

Example:Nodes of degree 3 are highlighted

23

2

0 1

10

3 5 9

18

15 20 22

25

24

33

27 37 42

Figure: Tree with potential Φ = 4

January 2019 Prof. Dr. Rolf Backofen – Bioinformatics - University Freiburg - Germany 42 / 55

Page 41: Algorithms and Data Structures - Balanced Trees (AVL-Trees ...ac.informatik.uni-freiburg.de/teaching/ws19_20/ad/slides/AlgoDatWS… · AVL-Trees (a,b)-Trees Introduction RuntimeComplexity

(a,b)-TreesRuntime Complexity - (2,4)-Tree

Terminology:Let ci be the costs = runtime of the i-th operationWe will show:

Each operation can at most destroy one stable nodeFor each cost incurring step the operation creates anadditional stable node

The costs for operation i are coupled to the difference ofthe potential levels

ci ≤ A · (Φi −Φi−1)︸ ︷︷ ︸+B, A > 0 and B > A

Number of gained stable nodes (degree 3) ≥−1Each operation has an amortitzed cost of O(1) summingup to O(n) in total

January 2019 Prof. Dr. Rolf Backofen – Bioinformatics - University Freiburg - Germany 43 / 55

Page 42: Algorithms and Data Structures - Balanced Trees (AVL-Trees ...ac.informatik.uni-freiburg.de/teaching/ws19_20/ad/slides/AlgoDatWS… · AVL-Trees (a,b)-Trees Introduction RuntimeComplexity

(a,b)-TreesRuntime Complexity - (2,4)-Tree

Case 1: i-th operation is an insert operation on a full node

2 10 15 24

15

2 10 24

Figure: Splitting a node on insert

Each splitted node creates a node of degree 3The parent node receives an element from the splittednodeIf the parent node is also full we have to split it too

January 2019 Prof. Dr. Rolf Backofen – Bioinformatics - University Freiburg - Germany 44 / 55

Page 43: Algorithms and Data Structures - Balanced Trees (AVL-Trees ...ac.informatik.uni-freiburg.de/teaching/ws19_20/ad/slides/AlgoDatWS… · AVL-Trees (a,b)-Trees Introduction RuntimeComplexity

(a,b)-TreesRuntime Complexity - (2,4)-Tree

Case 1: i-th operation is an insert operation on a full nodeLet m be the number of nodes splitThe potential rises by mIf the “stop-node” is of degree 3 then the potential goesdown by one

Φi ≥Φi−1 + m−1⇒m≤Φi −Φi−1 +1

Costs: ci ≤ A ·m + B

⇒ ci ≤ A · (Φi −Φi−1 +1) + Bci ≤ A · (Φi −Φi−1) + A + B︸ ︷︷ ︸

B′

January 2019 Prof. Dr. Rolf Backofen – Bioinformatics - University Freiburg - Germany 45 / 55

Page 44: Algorithms and Data Structures - Balanced Trees (AVL-Trees ...ac.informatik.uni-freiburg.de/teaching/ws19_20/ad/slides/AlgoDatWS… · AVL-Trees (a,b)-Trees Introduction RuntimeComplexity

(a,b)-TreesRuntime Complexity - (2,4)-Tree

Case 2: i-th operation is an remove operationCase 2.1: Inner node

Searching the successor in a tree is O(d) = O(logn)Normally the tree is coupled with a doubly linked list⇒We can find the succcessor in O(1)

n210...

tree navigation structre

Figure: Tree with doubly linked list

January 2019 Prof. Dr. Rolf Backofen – Bioinformatics - University Freiburg - Germany 46 / 55

Page 45: Algorithms and Data Structures - Balanced Trees (AVL-Trees ...ac.informatik.uni-freiburg.de/teaching/ws19_20/ad/slides/AlgoDatWS… · AVL-Trees (a,b)-Trees Introduction RuntimeComplexity

(a,b)-TreesRuntime Complexity - (2,4)-Tree

Case 2: i-th operation is an remove operationCase 2.1: Borrow a node

Creates no additional operationsCase 2.1.1: Potential rises by one

15

2 7 10

10

2 7 15

Figure: Case 2.1.1: Borrow an element

January 2019 Prof. Dr. Rolf Backofen – Bioinformatics - University Freiburg - Germany 47 / 55

Page 46: Algorithms and Data Structures - Balanced Trees (AVL-Trees ...ac.informatik.uni-freiburg.de/teaching/ws19_20/ad/slides/AlgoDatWS… · AVL-Trees (a,b)-Trees Introduction RuntimeComplexity

(a,b)-TreesRuntime Complexity - (2,4)-Tree

Case 2: i-th operation is an remove operationCase 2.1: Borrow a node

Creates no additional operationsCase 2.1.2: Potential is lowered by one

17

5 9⇒

9

5 17

Figure: Case 2.1.2: Borrow an element

January 2019 Prof. Dr. Rolf Backofen – Bioinformatics - University Freiburg - Germany 48 / 55

Page 47: Algorithms and Data Structures - Balanced Trees (AVL-Trees ...ac.informatik.uni-freiburg.de/teaching/ws19_20/ad/slides/AlgoDatWS… · AVL-Trees (a,b)-Trees Introduction RuntimeComplexity

(a,b)-TreesRuntime Complexity - (2,4)-Tree

Case 2: i-th operation is an remove operationCase 2.2: Merging two node

23

17

⇒17 23

Figure: Merging two nodes

Potential rises by oneParent node has one element less after the operationThis operation propagates upwards until a node of degree> 2 or a node of degree 2, which can borrow from aneighbour

January 2019 Prof. Dr. Rolf Backofen – Bioinformatics - University Freiburg - Germany 49 / 55

Page 48: Algorithms and Data Structures - Balanced Trees (AVL-Trees ...ac.informatik.uni-freiburg.de/teaching/ws19_20/ad/slides/AlgoDatWS… · AVL-Trees (a,b)-Trees Introduction RuntimeComplexity

(a,b)-TreesRuntime Complexity - (2,4)-Tree

Case 2: i-th operation is an remove operationCase 2.2: Merging two node

23

17

⇒17 23

Figure: Merging two nodes

The potential rises by mIf the “stop-node” is of degree 2 then the potentialeventually goes down by oneSame costs as insert

January 2019 Prof. Dr. Rolf Backofen – Bioinformatics - University Freiburg - Germany 50 / 55

Page 49: Algorithms and Data Structures - Balanced Trees (AVL-Trees ...ac.informatik.uni-freiburg.de/teaching/ws19_20/ad/slides/AlgoDatWS… · AVL-Trees (a,b)-Trees Introduction RuntimeComplexity

(a,b)-TreesRuntime Complexity - (2,4)-Tree - Lemma

Lemma:We know:

ci ≤ A · (Φi −Φi−1) + B, A > 0 and B > A

With that we can conclude:n∑i=0

ci ∈O(n)

January 2019 Prof. Dr. Rolf Backofen – Bioinformatics - University Freiburg - Germany 51 / 55

Page 50: Algorithms and Data Structures - Balanced Trees (AVL-Trees ...ac.informatik.uni-freiburg.de/teaching/ws19_20/ad/slides/AlgoDatWS… · AVL-Trees (a,b)-Trees Introduction RuntimeComplexity

(a,b)-TreesRuntime Complexity - (2,4)-Tree - Lemma - Proof

Proof:n∑i=0

ci ≤ A · (Φ1−Φ0) + B︸ ︷︷ ︸≤c1

+A · (Φ2−Φ1) + B︸ ︷︷ ︸≤c2

+ · · ·+ A · (Φn−Φn−1) + B︸ ︷︷ ︸≤cn

= A · (Φn−Φ0) + B ·n | telescope sum= A ·Φn + B ·n | we start with an empty tree< A ·n + B ·n ∈O(n) | number of degree 3 nodes

< number of nodes

January 2019 Prof. Dr. Rolf Backofen – Bioinformatics - University Freiburg - Germany 52 / 55

Page 51: Algorithms and Data Structures - Balanced Trees (AVL-Trees ...ac.informatik.uni-freiburg.de/teaching/ws19_20/ad/slides/AlgoDatWS… · AVL-Trees (a,b)-Trees Introduction RuntimeComplexity

Red-Black-TreesIntroduction

Red-Black Tree:Binary tree with red and black nodesNumber of black nodes on path to leaves is equalCan be interpreted as (2,4)-tree (also named 2-3-4-tree)Each (2,4)-tree-node is a small red-black-tree with a blackroot node

January 2019 Prof. Dr. Rolf Backofen – Bioinformatics - University Freiburg - Germany 54 / 55

Page 52: Algorithms and Data Structures - Balanced Trees (AVL-Trees ...ac.informatik.uni-freiburg.de/teaching/ws19_20/ad/slides/AlgoDatWS… · AVL-Trees (a,b)-Trees Introduction RuntimeComplexity

Red-Black-TreesIntroduction

Figure: Example of an red-black-tree [Gna]

January 2019 Prof. Dr. Rolf Backofen – Bioinformatics - University Freiburg - Germany 55 / 55

Page 53: Algorithms and Data Structures - Balanced Trees (AVL-Trees ...ac.informatik.uni-freiburg.de/teaching/ws19_20/ad/slides/AlgoDatWS… · AVL-Trees (a,b)-Trees Introduction RuntimeComplexity

General[CRL01] Thomas H. Cormen, Ronald L. Rivest, and

Charles E. Leiserson.Introduction to Algorithms.MIT Press, Cambridge, Mass, 2001.

[MS08] Kurt Mehlhorn and Peter Sanders.Algorithms and data structures, 2008.https://people.mpi-inf.mpg.de/~mehlhorn/ftp/Mehlhorn-Sanders-Toolbox.pdf.

Gnarley Trees

[Gna] Gnarley Treeshttps://people.ksp.sk/~kuko/gnarley-trees/

January 2019 Prof. Dr. Rolf Backofen – Bioinformatics - University Freiburg - Germany 55 / 55

Page 54: Algorithms and Data Structures - Balanced Trees (AVL-Trees ...ac.informatik.uni-freiburg.de/teaching/ws19_20/ad/slides/AlgoDatWS… · AVL-Trees (a,b)-Trees Introduction RuntimeComplexity

AVL-Tree[Wik] AVL tree

https://en.wikipedia.org/wiki/AVL_tree

(a,b)-Tree

[Wika] 2-3-4 treehttps://en.wikipedia.org/wiki/2%E2%80%933%E2%80%934_tree

[Wikb] (a,b)-treehttps://en.wikipedia.org/wiki/(a,b)-tree

January 2019 Prof. Dr. Rolf Backofen – Bioinformatics - University Freiburg - Germany 55 / 55

Page 55: Algorithms and Data Structures - Balanced Trees (AVL-Trees ...ac.informatik.uni-freiburg.de/teaching/ws19_20/ad/slides/AlgoDatWS… · AVL-Trees (a,b)-Trees Introduction RuntimeComplexity

Red-Black-Tree[Wik] Red-black tree

https://en.wikipedia.org/wiki/Red%E2%80%93black_tree

January 2019 Prof. Dr. Rolf Backofen – Bioinformatics - University Freiburg - Germany 55 / 55