Skip to content

t33nsy/practice_exercise

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

practice_exercise

Установка библиотеки отрисовки Graphviz

Для отрисовки деревьев использовался API работы с графами Graphviz

Вариант установки - при помощи файла requirements.txt и pip (либо при помощи официального сайта и прописывания всей папки bin в переменные PATH среды)

pip install -r ./requirements.txt

Также в случае проблем с Graphviz есть вариант модуля авл-дерева без визуализаций (файл avl_without_viz.py)

Примеры отрисовки представлены в файлах viz[1-5].png

AAAAAA + AAAAAA

AAAAAA

Пример разделения

AAAAAA

-> AAAAAA + AAAAAA

Немного слов про ассоциативный массив

Ассоциативный массив (класс DoubleHashingMap модуля assoc.py) реализован на методе двойного хэширования для защиты от коллизий.

Также реализован класс-обертка MyDict для работы с мапой при помощи переопределенных операторов (просто удобно)

Объяснение выбора операций

  • Вставка: Используется двойное хэширование для разрешения коллизий. Это улучшает равномерность распределения данных.

  • Поиск: Эффективен благодаря тому, что двойное хэширование минимизирует кластеризацию записей.

  • Удаление: Реализуется с помощью специального флага типа object для удаленных записей.

  • Перехеширование (ресайзинг): Увеличение размера таблицы в случае 50% заполнения предотвращает перегрузку и улучшает производительность.

Данные операции составляют достаточную основу для эффективной работы с таблицей, также временная сложность всех самых основных операций (вставка, удаление, поиск) составляет O(1) в лучшем и O(N) в худшем случаях

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages