mirror of
https://github.com/mfocko/blog.git
synced 2025-05-05 19:02:58 +02:00
Merge c40a8a9d58
into b1f1a9fc1c
This commit is contained in:
commit
fb01ded8ab
6 changed files with 131 additions and 0 deletions
algorithms/99-rank-balanced-trees
33
algorithms/99-rank-balanced-trees/01-avl.md
Normal file
33
algorithms/99-rank-balanced-trees/01-avl.md
Normal file
|
@ -0,0 +1,33 @@
|
|||
---
|
||||
id: avl
|
||||
slug: /rank-balanced-trees/avl
|
||||
title: AVL tree
|
||||
description: |
|
||||
Explaining the idea behind the AVL tree.
|
||||
tags:
|
||||
- balanced trees
|
||||
- avl tree
|
||||
last_update:
|
||||
date: 2024-06-30
|
||||
---
|
||||
|
||||
Let's start by checking out the AVL tree. We will cover the historic context
|
||||
first, then go through the idea behind it and finally we will be able to discuss
|
||||
the insertion and deletion corrections that are used to maintain the property of
|
||||
a balanced tree.
|
||||
|
||||
## Historic context
|
||||
|
||||
_TODO_
|
||||
|
||||
## Idea
|
||||
|
||||
_TODO_
|
||||
|
||||
## Insertion
|
||||
|
||||
_TODO_
|
||||
|
||||
## Deletion
|
||||
|
||||
_TODO_
|
12
algorithms/99-rank-balanced-trees/02-rank-balanced-tree.md
Normal file
12
algorithms/99-rank-balanced-trees/02-rank-balanced-tree.md
Normal file
|
@ -0,0 +1,12 @@
|
|||
---
|
||||
id: core
|
||||
slug: /rank-balanced-trees/core
|
||||
title: Rank-balanced trees
|
||||
description: |
|
||||
Explaining the idea behind the rank-balanced tree.
|
||||
tags:
|
||||
- balanced trees
|
||||
- rank-balanced trees
|
||||
last_update:
|
||||
date: 2024-06-30
|
||||
---
|
13
algorithms/99-rank-balanced-trees/03-avl-with-rank.md
Normal file
13
algorithms/99-rank-balanced-trees/03-avl-with-rank.md
Normal file
|
@ -0,0 +1,13 @@
|
|||
---
|
||||
id: avl-with-rank
|
||||
slug: /rank-balanced-trees/avl-with-rank
|
||||
title: AVL with rank
|
||||
description: |
|
||||
Implementing the AVL tree via rank-balanced tree.
|
||||
tags:
|
||||
- balanced trees
|
||||
- rank-balanced trees
|
||||
- avl tree
|
||||
last_update:
|
||||
date: 2024-06-30
|
||||
---
|
13
algorithms/99-rank-balanced-trees/04-rb-with-rank.md
Normal file
13
algorithms/99-rank-balanced-trees/04-rb-with-rank.md
Normal file
|
@ -0,0 +1,13 @@
|
|||
---
|
||||
id: rb-with-rank
|
||||
slug: /rank-balanced-trees/rb-with-rank
|
||||
title: Red-black tree with rank
|
||||
description: |
|
||||
Implementing the red-black tree via rank-balanced tree.
|
||||
tags:
|
||||
- balanced trees
|
||||
- rank-balanced trees
|
||||
- red-black trees
|
||||
last_update:
|
||||
date: 2024-06-30
|
||||
---
|
15
algorithms/99-rank-balanced-trees/05-avl-relaxations.md
Normal file
15
algorithms/99-rank-balanced-trees/05-avl-relaxations.md
Normal file
|
@ -0,0 +1,15 @@
|
|||
---
|
||||
id: avl-relaxations
|
||||
slug: /rank-balanced-trees/avl-relaxations
|
||||
title: Relaxations of the AVL tree
|
||||
description: |
|
||||
Implementing the WAVL and rAVL trees.
|
||||
tags:
|
||||
- balanced trees
|
||||
- rank-balanced trees
|
||||
- avl tree
|
||||
- wavl tree
|
||||
- ravl tree
|
||||
last_update:
|
||||
date: 2024-06-30
|
||||
---
|
45
algorithms/99-rank-balanced-trees/index.md
Normal file
45
algorithms/99-rank-balanced-trees/index.md
Normal file
|
@ -0,0 +1,45 @@
|
|||
---
|
||||
id: index
|
||||
slug: /rank-balanced-trees/
|
||||
title: Rank-Balanced Trees
|
||||
description: |
|
||||
Explaining the rank-balanced trees. The web version of my bachelor thesis.
|
||||
tags:
|
||||
- balanced trees
|
||||
- red-black trees
|
||||
- avl tree
|
||||
- wavl tree
|
||||
last_update:
|
||||
date: 2024-06-08
|
||||
---
|
||||
|
||||
Data structures have become a regular part of the essential toolbox for
|
||||
problem-solving. In many cases, they also help to improve the existing
|
||||
algorithms’ performance, e.g., using a priority queue in _Dijkstra’s algorithm_
|
||||
_for the shortest path_. This thesis will mainly discuss the implementation of
|
||||
a set.
|
||||
|
||||
Currently, the most commonly used implementations of sets use hash tables, but
|
||||
we will talk about another common alternative, implementation via self-balancing
|
||||
search trees. Compared to a hash table, they provide consistent time complexity,
|
||||
but at the cost of a requirement for ordering on the elements. The most
|
||||
implemented self-balancing binary tree is a _red-black tree_, as described by
|
||||
_Guibas and Sedgewick_[^1]. Among other alternatives, we can find (non-binary)
|
||||
_B-tree_[^2] and _AVL tree_[^3].
|
||||
|
||||
We will focus on the _Weak AVL_ (_WAVL_) _tree_[^4] that is a relaxed variant of
|
||||
the AVL tree, but still provides better balancing than a red-black tree.
|
||||
|
||||
We will start by describing the AVL tree, then we will introduce the idea
|
||||
of a _rank-balanced tree_. Given this insight we will be able to explore various
|
||||
implementations of aforementioned trees using the rank-balanced tree. At the end
|
||||
we will focus on the _Weak AVL tree_
|
||||
|
||||
[^1]: [A dichromatic framework for balanced trees.](https://doi.org/10.1109/SFCS.1978.3)
|
||||
[^2]: [Organization and Maintenance of Large Ordered Indices.](https://doi.org/10.1145/1734663.1734671)
|
||||
[^3]:
|
||||
ADELSON-VELSKIJ, Georgij; LANDIS, Evgenij. An algorithm for the
|
||||
organization of information. _Doklady Akad. Nauk SSSR._ 1962, vol. 146,
|
||||
pp. 263–266.
|
||||
|
||||
[^4]: [Rank-Balanced Trees](https://doi.org/10.1145/2689412)
|
Loading…
Add table
Add a link
Reference in a new issue