blog/algorithms/99-rank-balanced-trees/01-introduction.md
Matej Focko a9f9205805
algorithms(rank): initialize chapter and add intro
Signed-off-by: Matej Focko <mfocko@redhat.com>
Signed-off-by: Matej Focko <me@mfocko.xyz>
2024-06-08 20:10:08 +02:00

32 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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. 821. 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. 107141. 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. 263266.
[^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).