mirror of
https://github.com/mfocko/blog.git
synced 2024-11-10 00:09:07 +01:00
algorithms(rank): initialize chapter and add intro
Signed-off-by: Matej Focko <mfocko@redhat.com> Signed-off-by: Matej Focko <me@mfocko.xyz>
This commit is contained in:
parent
760f36589b
commit
a9f9205805
2 changed files with 38 additions and 0 deletions
32
algorithms/99-rank-balanced-trees/01-introduction.md
Normal file
32
algorithms/99-rank-balanced-trees/01-introduction.md
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
---
|
||||||
|
title: Introduction
|
||||||
|
description: |
|
||||||
|
Summing up the contents of the „Rank-Balanced Trees“ chapter.
|
||||||
|
tags:
|
||||||
|
- balanced trees
|
||||||
|
---
|
||||||
|
|
||||||
|
Data structures have become a regular part of the essential toolbox for
|
||||||
|
problem-solving. In many cases, they also help to improve the existing algorithm's
|
||||||
|
performance, e.g. using a priority queue in _Dijkstra's algorithm for the shortest_
|
||||||
|
_path_. We 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 start by discussing the properties of the AVL tree[^3], then we will
|
||||||
|
follow up on that with a definition of a _rank-balanced tree_, including
|
||||||
|
implementation of algorithms for implementing commonly known trees such as red-black
|
||||||
|
tree and AVL tree using the given representation. Afterwards we will delve into
|
||||||
|
the details of the _Weak AVL (WAVL) tree_[^4] that has relaxed requirements
|
||||||
|
compared to the AVL tree.
|
||||||
|
|
||||||
|
[^1]: GUIBAS, Leo J.; SEDGEWICK, Robert. A dichromatic framework for balanced trees. In: _19th Annual Symposium on Foundations of Computer Science (sfcs 1978)_. 1978, pp. 8–21. Available from doi: [10.1109/SFCS.1978.3](https://doi.org/10.1109/SFCS.1978.3).
|
||||||
|
[^2]: BAYER, R.; MCCREIGHT, E. Organization and Maintenance of Large Ordered Indices. In: _Proceedings of the 1970 ACM SIGFIDET (Now SIGMOD) Workshop on Data Description, Access and Control_. Houston, Texas: Association for Computing Machinery, 1970, pp. 107–141. SIGFIDET ’70. isbn 9781450379410. Available from doi: [10.1145/1734663.1734671](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]: HAEUPLER, Bernhard; SEN, Siddhartha; TARJAN, Robert E. Rank-Balanced Trees. _ACM Trans. Algorithms_. 2015, vol. 11, no. 4. issn 1549-6325. Available from doi: [10.1145/2689412](https://doi.org/10.1145/2689412).
|
6
algorithms/99-rank-balanced-trees/_category_.yaml
Normal file
6
algorithms/99-rank-balanced-trees/_category_.yaml
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
label: Rank-Balanced Trees
|
||||||
|
position: 99
|
||||||
|
link:
|
||||||
|
type: generated-index
|
||||||
|
description: |
|
||||||
|
Web version of my bachelor thesis on rank-balanced trees.
|
Loading…
Reference in a new issue