k1242 / CppDGAPForest

Implementation Red–black tree, AVL tree and their testing system.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Деревья на C++

Общую теорию можно найти по красно-черным здесь и по АВЛ здесь.

Красно-черное дерево

...

АВЛ-дерево

...

Тестирование

При различных размерах дерева (от 0 до элементов) измеряется время вставки элемента (insert), поиска (find) и удаления (remove). Каждое измерение производится раз. По МНК находим линейное и нелинейное приближение (для понимания применимости линейной аппроксимации), из корней диагональных элементов ковариационной матрицы находим ошибку полученных величин.

Можете самостоятельно воспользоваться кодом для тестирования и блокнотом для обработки результатов.

Результаты

АВЛ-дерево

find

Для рандомизированной проверки, получим (масштаб был изменен в 100 раз)

find

insert

remove

Красно-чёрное дерево

find

Для рандомизированной проверки, получим (масштаб был изменен в 10 раз)

find

insert

remove

Общий обзор

Можно заметить, что время работы достаточно схоже для одни и тех же действий. Светлым показано нелинейная аппрокимация точек, которая, как видно, ни сильно отличается в пределах погрешности.

overview

About

Implementation Red–black tree, AVL tree and their testing system.

License:MIT License


Languages

Language:Jupyter Notebook 99.3%Language:C++ 0.7%