diff --git a/stepushovgs/.gitignore b/stepushovgs/.gitignore new file mode 100644 index 0000000..b4f7484 --- /dev/null +++ b/stepushovgs/.gitignore @@ -0,0 +1,262 @@ +# ---> Python +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ +cover/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +.pybuilder/ +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: +# .python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# poetry +# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. +# This is especially recommended for binary packages to ensure reproducibility, and is more +# commonly ignored for libraries. +# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control +#poetry.lock + +# pdm +# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. +#pdm.lock +# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it +# in version control. +# https://pdm.fming.dev/#use-with-ide +.pdm.toml + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# pytype static type analyzer +.pytype/ + +# Cython debug symbols +cython_debug/ + +# PyCharm +# JetBrains specific template is maintained in a separate JetBrains.gitignore that can +# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore +# and can be added to the global gitignore or merged into this file. For a more nuclear +# option (not recommended) you can uncomment the following to ignore the entire idea folder. +#.idea/ + +# Prerequisites +*.d + +# Object files +*.o +*.ko +*.obj +*.elf + +# Linker output +*.ilk +*.map +*.exp + +# Precompiled Headers +*.gch +*.pch + +# Libraries +*.lib +*.a +*.la +*.lo + +# Shared objects (inc. Windows DLLs) +*.dll +*.so +*.so.* +*.dylib + +# Executables +*.exe +*.out +*.app +*.i*86 +*.x86_64 +*.hex + +# Debug files +*.dSYM/ +*.su +*.idb +*.pdb + +# Kernel Module Compile Results +*.mod* +*.cmd +.tmp_versions/ +modules.order +Module.symvers +Mkfile.old +dkms.conf + +# debug information files +*.dwo + +################################# +############## Go ############### +################################# + +# If you prefer the allow list template instead of the deny list, see community template: +# https://github.com/github/gitignore/blob/main/community/Golang/Go.AllowList.gitignore +# +# Binaries for programs and plugins +*.exe +*.exe~ +*.dll +*.so +*.dylib + +# Test binary, built with `go test -c` +*.test + +# Code coverage profiles and other test artifacts +*.out +coverage.* +*.coverprofile +profile.cov + +# Dependency directories (remove the comment below to include it) +# vendor/ + +# Go workspace file +go.work +go.work.sum + +# env file +.env + +# Editor/IDE +# .idea/ +.vscode/ + +!go.mod + +################################# +########### Obsidian ############ +################################# + +.obsidian/ \ No newline at end of file diff --git a/stepushovgs/data-structures/docs/img/delete.pdf b/stepushovgs/data-structures/docs/img/delete.pdf new file mode 100644 index 0000000..c93434b Binary files /dev/null and b/stepushovgs/data-structures/docs/img/delete.pdf differ diff --git a/stepushovgs/data-structures/docs/img/insert.pdf b/stepushovgs/data-structures/docs/img/insert.pdf new file mode 100644 index 0000000..638ae8c Binary files /dev/null and b/stepushovgs/data-structures/docs/img/insert.pdf differ diff --git a/stepushovgs/data-structures/docs/img/search.pdf b/stepushovgs/data-structures/docs/img/search.pdf new file mode 100644 index 0000000..eb2b1b9 Binary files /dev/null and b/stepushovgs/data-structures/docs/img/search.pdf differ diff --git a/stepushovgs/data-structures/docs/src/main.ipynb b/stepushovgs/data-structures/docs/src/main.ipynb new file mode 100644 index 0000000..3dfdb4d --- /dev/null +++ b/stepushovgs/data-structures/docs/src/main.ipynb @@ -0,0 +1,754 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 14, + "id": "e631810e", + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "12fa3ed1", + "metadata": {}, + "outputs": [], + "source": [ + "# CMU Serif\n", + "plt.rcParams['font.family'] = 'CMU Serif'\n", + "plt.rcParams['mathtext.fontset'] = 'cm'\n", + "plt.rcParams['font.size'] = 14\n", + "plt.rcParams['axes.titlesize'] = 16\n", + "plt.rcParams['axes.labelsize'] = 15\n", + "plt.rcParams['xtick.labelsize'] = 13\n", + "plt.rcParams['ytick.labelsize'] = 13\n", + "plt.rcParams['legend.fontsize'] = 12" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "c691c40e", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
StructureModeOperationTime
0Связный списокСлучайныйВставка0.199516
1Связный списокСлучайныйПоиск0.024629
2Связный списокСлучайныйУдаление0.014065
3Связный списокСлучайныйВставка0.196946
4Связный списокСлучайныйПоиск0.023807
...............
373Бинарное дерево поискаОтсортированныйПоиск0.062731
374Бинарное дерево поискаОтсортированныйУдаление0.062908
375Бинарное дерево поискаОтсортированныйВставка (среднее)0.952690
376Бинарное дерево поискаОтсортированныйПоиск (среднее)0.060593
377Бинарное дерево поискаОтсортированныйУдаление (среднее)0.064886
\n", + "

378 rows × 4 columns

\n", + "
" + ], + "text/plain": [ + " Structure Mode Operation Time\n", + "0 Связный список Случайный Вставка 0.199516\n", + "1 Связный список Случайный Поиск 0.024629\n", + "2 Связный список Случайный Удаление 0.014065\n", + "3 Связный список Случайный Вставка 0.196946\n", + "4 Связный список Случайный Поиск 0.023807\n", + ".. ... ... ... ...\n", + "373 Бинарное дерево поиска Отсортированный Поиск 0.062731\n", + "374 Бинарное дерево поиска Отсортированный Удаление 0.062908\n", + "375 Бинарное дерево поиска Отсортированный Вставка (среднее) 0.952690\n", + "376 Бинарное дерево поиска Отсортированный Поиск (среднее) 0.060593\n", + "377 Бинарное дерево поиска Отсортированный Удаление (среднее) 0.064886\n", + "\n", + "[378 rows x 4 columns]" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "csv_path = \"../../source/results/benchmarks.csv\"\n", + "\n", + "data = pd.read_csv(csv_path)\n", + "data" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "a3737f45", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(np.float64(0.023733), np.float64(0.193345), np.float64(0.014249))" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Получение данных для Связного списка\n", + "\n", + "ll_random_insert = data.loc[\n", + " (data['Structure'] == 'Связный список') & (data['Mode'] == 'Случайный') & (data['Operation'] == 'Вставка'),\n", + " 'Time'\n", + " ].tolist()\n", + "ll_random_insert_average = data.loc[\n", + " (data['Structure'] == 'Связный список') & (data['Mode'] == 'Случайный') & (data['Operation'] == 'Вставка (среднее)'),\n", + " 'Time'\n", + " ].iloc[0]\n", + "\n", + "ll_random_search = data.loc[\n", + " (data['Structure'] == 'Связный список') & (data['Mode'] == 'Случайный') & (data['Operation'] == 'Поиск'),\n", + " 'Time'\n", + " ].tolist()\n", + "ll_random_search_average = data.loc[\n", + " (data['Structure'] == 'Связный список') & (data['Mode'] == 'Случайный') & (data['Operation'] == 'Поиск (среднее)'),\n", + " 'Time'\n", + " ].iloc[0]\n", + "\n", + "ll_random_delete = data.loc[\n", + " (data['Structure'] == 'Связный список') & (data['Mode'] == 'Случайный') & (data['Operation'] == 'Удаление'),\n", + " 'Time'\n", + " ].tolist()\n", + "ll_random_delete_average = data.loc[\n", + " (data['Structure'] == 'Связный список') & (data['Mode'] == 'Случайный') & (data['Operation'] == 'Удаление (среднее)'),\n", + " 'Time'\n", + " ].iloc[0]\n", + "ll_random_search_average, ll_random_insert_average, ll_random_delete_average" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "5434d260", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(np.float64(0.034479), np.float64(0.193979), np.float64(0.024509))" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Получение данных для Связного списка\n", + "\n", + "ll_sorted_insert = data.loc[\n", + " (data['Structure'] == 'Связный список') & (data['Mode'] == 'Отсортированный') & (data['Operation'] == 'Вставка'),\n", + " 'Time'\n", + " ].tolist()\n", + "ll_sorted_insert_average = data.loc[\n", + " (data['Structure'] == 'Связный список') & (data['Mode'] == 'Отсортированный') & (data['Operation'] == 'Вставка (среднее)'),\n", + " 'Time'\n", + " ].iloc[0]\n", + "\n", + "ll_sorted_search = data.loc[\n", + " (data['Structure'] == 'Связный список') & (data['Mode'] == 'Отсортированный') & (data['Operation'] == 'Поиск'),\n", + " 'Time'\n", + " ].tolist()\n", + "ll_sorted_search_average = data.loc[\n", + " (data['Structure'] == 'Связный список') & (data['Mode'] == 'Отсортированный') & (data['Operation'] == 'Поиск (среднее)'),\n", + " 'Time'\n", + " ].iloc[0]\n", + "\n", + "ll_sorted_delete = data.loc[\n", + " (data['Structure'] == 'Связный список') & (data['Mode'] == 'Отсортированный') & (data['Operation'] == 'Удаление'),\n", + " 'Time'\n", + " ].tolist()\n", + "ll_sorted_delete_average = data.loc[\n", + " (data['Structure'] == 'Связный список') & (data['Mode'] == 'Отсортированный') & (data['Operation'] == 'Удаление (среднее)'),\n", + " 'Time'\n", + " ].iloc[0]\n", + "ll_sorted_search_average, ll_sorted_insert_average, ll_sorted_delete_average" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "3deed9a5", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(np.float64(0.0), np.float64(0.003635), np.float64(5e-05))" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Получение данных для хеш таблицы\n", + "ht_random_insert = data.loc[\n", + " (data['Structure'] == 'Хеш таблица') & (data['Mode'] == 'Случайный') & (data['Operation'] == 'Вставка'),\n", + " 'Time'\n", + " ].tolist()\n", + "ht_random_insert_average = data.loc[\n", + " (data['Structure'] == 'Хеш таблица') & (data['Mode'] == 'Случайный') & (data['Operation'] == 'Вставка (среднее)'),\n", + " 'Time'\n", + " ].iloc[0]\n", + "\n", + "ht_random_search = data.loc[\n", + " (data['Structure'] == 'Хеш таблица') & (data['Mode'] == 'Случайный') & (data['Operation'] == 'Поиск'),\n", + " 'Time'\n", + " ].tolist()\n", + "ht_random_search_average = data.loc[\n", + " (data['Structure'] == 'Хеш таблица') & (data['Mode'] == 'Случайный') & (data['Operation'] == 'Поиск (среднее)'),\n", + " 'Time'\n", + " ].iloc[0]\n", + "\n", + "ht_random_delete = data.loc[\n", + " (data['Structure'] == 'Хеш таблица') & (data['Mode'] == 'Случайный') & (data['Operation'] == 'Удаление'),\n", + " 'Time'\n", + " ].tolist()\n", + "ht_random_delete_average = data.loc[\n", + " (data['Structure'] == 'Хеш таблица') & (data['Mode'] == 'Случайный') & (data['Operation'] == 'Удаление (среднее)'),\n", + " 'Time'\n", + " ].iloc[0]\n", + "\n", + "ht_random_delete_average, ht_random_insert_average, ht_random_search_average" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "490e5c46", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(np.float64(0.000163), np.float64(0.003181), np.float64(0.000109))" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Получение данных для хеш таблицы\n", + "ht_sorted_insert = data.loc[\n", + " (data['Structure'] == 'Хеш таблица') & (data['Mode'] == 'Отсортированный') & (data['Operation'] == 'Вставка'),\n", + " 'Time'\n", + " ].tolist()\n", + "ht_sorted_insert_average = data.loc[\n", + " (data['Structure'] == 'Хеш таблица') & (data['Mode'] == 'Отсортированный') & (data['Operation'] == 'Вставка (среднее)'),\n", + " 'Time'\n", + " ].iloc[0]\n", + "\n", + "ht_sorted_search = data.loc[\n", + " (data['Structure'] == 'Хеш таблица') & (data['Mode'] == 'Отсортированный') & (data['Operation'] == 'Поиск'),\n", + " 'Time'\n", + " ].tolist()\n", + "ht_sorted_search_average = data.loc[\n", + " (data['Structure'] == 'Хеш таблица') & (data['Mode'] == 'Отсортированный') & (data['Operation'] == 'Поиск (среднее)'),\n", + " 'Time'\n", + " ].iloc[0]\n", + "\n", + "ht_sorted_delete = data.loc[\n", + " (data['Structure'] == 'Хеш таблица') & (data['Mode'] == 'Отсортированный') & (data['Operation'] == 'Удаление'),\n", + " 'Time'\n", + " ].tolist()\n", + "ht_sorted_delete_average = data.loc[\n", + " (data['Structure'] == 'Хеш таблица') & (data['Mode'] == 'Отсортированный') & (data['Operation'] == 'Удаление (среднее)'),\n", + " 'Time'\n", + " ].iloc[0]\n", + "\n", + "ht_sorted_delete_average, ht_sorted_insert_average, ht_sorted_search_average" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "9d7274ab", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(np.float64(0.000481), np.float64(0.006081), np.float64(0.000336))" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Получение данных для дерева\n", + "bst_random_insert = data.loc[\n", + " (data['Structure'] == 'Бинарное дерево поиска') & (data['Mode'] == 'Случайный') & (data['Operation'] == 'Вставка'),\n", + " 'Time'\n", + " ].tolist()\n", + "bst_random_insert_average = data.loc[\n", + " (data['Structure'] == 'Бинарное дерево поиска') & (data['Mode'] == 'Случайный') & (data['Operation'] == 'Вставка (среднее)'),\n", + " 'Time'\n", + " ].iloc[0]\n", + "\n", + "bst_random_search = data.loc[\n", + " (data['Structure'] == 'Бинарное дерево поиска') & (data['Mode'] == 'Случайный') & (data['Operation'] == 'Поиск'),\n", + " 'Time'\n", + " ].tolist()\n", + "bst_random_search_average = data.loc[\n", + " (data['Structure'] == 'Бинарное дерево поиска') & (data['Mode'] == 'Случайный') & (data['Operation'] == 'Поиск (среднее)'),\n", + " 'Time'\n", + " ].iloc[0]\n", + "\n", + "bst_random_delete = data.loc[\n", + " (data['Structure'] == 'Бинарное дерево поиска') & (data['Mode'] == 'Случайный') & (data['Operation'] == 'Удаление'),\n", + " 'Time'\n", + " ].tolist()\n", + "bst_random_delete_average = data.loc[\n", + " (data['Structure'] == 'Бинарное дерево поиска') & (data['Mode'] == 'Случайный') & (data['Operation'] == 'Удаление (среднее)'),\n", + " 'Time'\n", + " ].iloc[0]\n", + "\n", + "bst_random_delete_average, bst_random_insert_average, bst_random_search_average" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "92a545c9", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(np.float64(0.064886), np.float64(0.95269), np.float64(0.060593))" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Получение данных для дерева\n", + "bst_sorted_insert = data.loc[\n", + " (data['Structure'] == 'Бинарное дерево поиска') & (data['Mode'] == 'Отсортированный') & (data['Operation'] == 'Вставка'),\n", + " 'Time'\n", + " ].tolist()\n", + "bst_sorted_insert_average = data.loc[\n", + " (data['Structure'] == 'Бинарное дерево поиска') & (data['Mode'] == 'Отсортированный') & (data['Operation'] == 'Вставка (среднее)'),\n", + " 'Time'\n", + " ].iloc[0]\n", + "\n", + "bst_sorted_search = data.loc[\n", + " (data['Structure'] == 'Бинарное дерево поиска') & (data['Mode'] == 'Отсортированный') & (data['Operation'] == 'Поиск'),\n", + " 'Time'\n", + " ].tolist()\n", + "bst_sorted_search_average = data.loc[\n", + " (data['Structure'] == 'Бинарное дерево поиска') & (data['Mode'] == 'Отсортированный') & (data['Operation'] == 'Поиск (среднее)'),\n", + " 'Time'\n", + " ].iloc[0]\n", + "\n", + "bst_sorted_delete = data.loc[\n", + " (data['Structure'] == 'Бинарное дерево поиска') & (data['Mode'] == 'Отсортированный') & (data['Operation'] == 'Удаление'),\n", + " 'Time'\n", + " ].tolist()\n", + "bst_sorted_delete_average = data.loc[\n", + " (data['Structure'] == 'Бинарное дерево поиска') & (data['Mode'] == 'Отсортированный') & (data['Operation'] == 'Удаление (среднее)'),\n", + " 'Time'\n", + " ].iloc[0]\n", + "\n", + "bst_sorted_delete_average, bst_sorted_insert_average, bst_sorted_search_average" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "b2e93d6e", + "metadata": {}, + "outputs": [], + "source": [ + "# countUsers = 10_000\n", + "# countRepeat = 10\n", + "# countRandomSearch = 200\n", + "# countNotExitstSearch = 100\n", + "# countDeletes = 500\n", + "\n", + "countUsers = 20_000\n", + "countRepeat = 20\n", + "countRandomSearch = 1000\n", + "countNotExitstSearch = 500\n", + "countDeletes = 1000\n", + "\n", + "ll_col = 'blue'\n", + "ht_col = 'orange'\n", + "bst_col = 'green'\n", + "\n", + "iterations = range(countRepeat)" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "208784a5", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABWIAAAJKCAYAAACmkjw+AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjcsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvTLEjVAAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3QeYFEX6x/GXIDmICEoWJIkBcwYEc0QROSOgnhEVDKgYQP+KnGcATIiIWTEgeoenGDCA4pkzOYgkSZIlM//nV3s19szO7s4uk3bm++GZZ5menqnu6p6e6rffrioTCoVCBgAAAAAAAABImrLJ+2gAAAAAAAAAgBCIBQAAAAAAAIAkIxALAAAAAAAAAElGIBYAAAAAAAAAkoxALAAAAAAAAAAkGYFYAAAAAAAAAEgyArEAAAAAAAAAkGQEYgEAAAAAAAAgyQjEAgAAAAAAAECSEYgFAAAAAJTY3Llz7a677kr3YuSkTz/91J5//vl0LwYAIE5lQqFQKN6ZAQDpsXz5chs8eLBNmjTJdtllF6tWrZpVqFDBevbsaQcddJCdc845NmrUqHQvJgAAyDFr1qyxc88911588UWrUaOGffzxx/bkk0/azz//bD/88IN1797dnn322Yj3PProo26e77//3ho1amQnnXSSPf7442lZ/m3bttmgQYNs1qxZtnr1avvtt9/s6quvtgsuuCBivi1bttj//d//2ebNm22nnXZy63fddddZ27ZtI+b7/fff7c4773TrtXXrVluwYIHdfffdtvPOO0fM9+WXX9rw4cNtjz32sMWLF1v16tXt1ltvtXLlykXM98ILL9jnn39uzZo1s+nTp9vRRx9t3bp1i5inf//+dsQRR9jxxx+f8PoBACQWgVgAyHDvvfeenXfeedanTx+7/vrrrVKlSm66TgTUsF+0aJGNGDHCOJwDAIBUUzCya9eudvjhh0dMf+aZZ1ym5ocffmhvvfWWnXzyyfnee9xxx9no0aNdADdd+vXrZx07dnTLIp999pl16NDBBV1vueWW8HyXXHKJtWzZ0vr27eueL1261Nq1a2djx461Fi1auGmbNm2yAw44wEaOHGkHH3ywmzZhwgTr3bu3C7zusMMObtq0adPstNNOc9Nq1qzppqk8BWQVpPYU3H755ZddGT5ofMIJJ9jf//73iGCsAr5nnHGGvfTSS+5iPQAgc9E1AQBkMGWVnHLKKa5xriwJH4QVNeaVcbFs2bK0LiMAAMhNkydPth9//DFfENZ74IEHrF69enbFFVe4zNloel86g7Dz5s1zy+WDsKLMUgU11cZSYFSU/aqs3ssvvzw8X506dezEE0+0AQMGhKcpy7dKlSrhIKy0b9/e/X366afD026//XY7/fTTw0FY6dWrlz3xxBMuSOszcBX0vfLKK8PzlC1b1s2nC/MKynrKoj377LPtjjvuSGj9AAASj0AsAGSoP//8093q17p1a3cCU5ChQ4damTJlUrpsAAAA9913X0RwMtqOO+5ojzzyiAt43nTTTZZpdMu/ugeI7hbh0EMPddmtel1ee+01a9Kkies+IEjdErz55pvuLiV55ZVXbJ999slXjubTZ8iGDRvs3//+d775ateubQ0aNHAZwjJx4kR311P0fPqs+fPnh5fNO+uss+yNN96IGfAGAGQOArEAkKGUOaEGuLolKIz6IIvV6AcAoCSCmXa5VDbyqKujeLaDApWvv/6667O0MF26dLEzzzzTBTsVXMwku+22m1vX6OCl+uEP+vbbb61WrVr53q/g6fr16+2XX34pcr6vvvrK/V/zbty4scj59FkSPZ/mET9f8E6p/fbbz/71r3/FufYAgHQgEAsAGertt98OZ2UU5Z///Kf7O378eHc7nBrpmjZw4EDXrcE111zjujj47rvvIt6nPsV0YvTggw+6/mY7d+4cLtcbNmyYGxBMWbfKZtFthvqrvt50q57oBEblKZNDt+SpTAWRdYJ27LHHuvdq0It33303/LnvvPOOXXjhhfaPf/zD3Uqnz1SWiCgbRJ+v96kPtA8++MDdqnfzzTe72/LatGnjllkni/qr5+XLl3eDVUyZMsV16dCjRw/3fn2Oz0KRL774wg1yprq555573C1+K1euLLR+NXiH1mnXXXd1g23ce++9dv/997uHbl/0y6k+8Iq7DUTLp1sPNb/WQf3VrV27Nvz6U0895W7fVDnqZ07roBO0a6+91k3Ta7odUoO66RZI1edjjz3mtpX6tNNgbspG8n3fXXbZZe59nTp1cuugetCy6ZbIaPoc9U+srCf1laf10e2SQao/3cKp7a911WeqXJWh2z3Vx50GK1E5yiZq2LChW1ftN+o/8Mgjj3Tzqo7++9//un4FlXmkWzdVngZF0cmy9hX1Raj+7379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CM/7+eefu2WrUKGCe+j/n332mXtt6tSptsMOO7iszZNPPtm++OKL8Ptmz55tjz/+uN1zzz120003uf7Qhg8fXqI6LKqePE0744wzXFapbve7++67Xd1p+XbccUd3q79u+//3v/9tp5xyilv/WrVqubr1fvjhB9tjjz3ce1R/CxYssBdeeMHOPPNMN3/Dhg3t1ltvtV9//dU++eQT6927t6uDihUr2vXXXx+uG/n000/t4YcfdnWrLgZOPPFE++ijjyKWecqUKXbzzTe75ahdu7bNnTvXzjnnHLcdlSF76aWXunJPOukke+yxx9x7Bg0a5AYA0XQtq+pj3bp1NmrUKDv77LPd9MaNG9vtt9/u6u6dd95x+4GmazlVh9qu0V577TVXtuZr1KhR+P3PP/+86zZB0/XQ9pStW7eGl2Offfax2267Le5t+tNPP7n60nbp27ev21b/93//F97Hta1VbnH2J9XBnXfeaW3atHGfceihh7r5ZdiwYa7+NX3PPfd082nQlGCdaVn02domfr9XfQW3bXB76T16rz4j2ldffeXe49/vvzcTJ050A7Romt7frl0727x5s3uP9lVNU9+CvXr1skWLFsVdnwCA0oO24fa3DdUO0zpfe+21bln1/yFDhri2iaf11W+7BlHT777aBVo/lavnuvBdvnx5102Epwvhek3LrnW/5ZZbbOjQoW67BKn+VLbadyr/6quvduX9+eef4XnGjx9v++23n9tGhxxyiH399ddufn1u165dXdvqxx9/jPhcLZ/uiFIbTO0jLZ+2h9pYan+o3ecv0Afbg75ts3HjRre9u3Tpkq89+OKLL7r2Wr169eyss86y9957zy23lufUU0+1Cy64wNVrrIDXyJEjXX1pn9O2U/t08uTJEfOp7X3wwQe7ctUHsm/bqSx1vaUB7aLbbSNGjHBJCFpG1YfWWdOD1IY74YQTwu1w1cXChQsj2rc77bSTq59ffvklYv/Ua1pWzav3qBy1cTVdbV7VSXT7UXXq249BS5YsiXi/2oB6v9ZLZateNb1JkybueyA659A21FgPqoNY7e+CaL/T91l16s9rzj333HA9aN/U2BLBdvzgwYNdnffo0cPNq+9cULDOVD/ah7VM0e3bK664wiWDRNeZvjvaHtH7n7a3jhfR20vv89sr2n333Rd+v/5q/UTbYv/993fT1Ye2P/bM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V15pc+fODU+bM2eONWnSJOnLDAAAgBzomqAkfWeJAqsDBw60mjVr2i233JLv9datW9vMmTPDzw844AB74oknbP/99w9PmzJlij3++ONuXgVtN23aZLfddpuVL5+x1QUAAIAMp0Drli1brGrVqhHTq1Wr5v5OmzYtX5BWLrvsMnvkkUesTZs2LnP2tNNOs/vvv9/uu+++QsvbuHGjewTbybJt2zb3SCZ9figUSno56SwzF9aRMrOnPMrMnvIoM7vKzIV1zIUytxWjjPLZ0neWMgSGDx9ulStXtqefftplDcRy+umn2xlnnGErV660Fi1auEeQpp900kluMISdd97ZTRs8eLBdffXVNmzYsISvKwAAAHKDLvBL9MV9/9y/Hq1Bgwb25Zdf2gknnGA33XST3XXXXTZu3DirU6dOoeUNGjTI7rzzznzTly5dahs2bLBkn5CsWrXKnQClakCxVJeZC+tImdlTHmVmT3mUmV1l5sI65kKZa9asKd2B2IL6zurXr1+BgVjdmqXgrYwcObLAz1YGwuGHH17g6w8//LDts88+4SCsdO/e3XbZZRe79dZbrWHDhiVcKwAAAOQy37bVCUGQfx493VPQVBmxQ4cOtXnz5rm7vjp06OCmXX755QWWp7bzddddF5ER26hRIxfArVGjhiX75Efrq7JSecKVyjJzYR0pM3vKo8zsKY8ys6vMXFjHXCizUqVKpTcQ6/vOuuaaawrsOyvWLVuJouyCgw8+OGJa7dq1XQD3vffes4suuihpZQMAACB7qessUbdXQb77AP96tL///e/ubi+fTHDmmWdar169rE+fPnbqqae6jNmC+pbVI5pORlJxEqSTn1SVla4yc2EdKTN7yqPM7CmPMrOrzFxYx2wvs2wxPr98tvSdFS91PTBkyBDbaaed3IBdSh9Wn7L+ljAFezt27JjvfSpfZWda/1u+HPowoczSUB5lZleZubCOuVJmLqwjZWZXeaWV2rDlypULtxU93TYn0V1mydq1a+2nn36KuKNLmR2vvvqqderUyb744gvr0qVLCpYeAAAA26t8tvSdFS8FXnULl08bvuCCC6xv376uH1j/+bEG5dK0gspOZ/9bQh8mlFlayqPM7CozF9YxV8rMhXWkzOwprzh9cGWaKlWq2JFHHhkxcKzMmDHDGjdubC1btsz3nq1bt7o7xmLZe++9i+wn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/74DpZXOs3S+lYg2aokzYgcOHGiHHHKI60/12GOPtfr167uFUt+tb731luun9auvvtruBQQAAPHJhH41gWzZh2nrAgCQfb/vQElkxGBdDRo0sE8//dQuueQSN2qsFkqNUznssMNs4sSJ1qhRo4QtKAAAAJAqtHUBAACQaCUOxMpuu+1m77//vusf6/vvv3f9f+y1117Wpk2bxC0hAAAAkAa0dQEAAJAxgVhv9913dw8AAAAg29DWBQAAQCKUeLAuAAAAlNzixYvdyKs//vije37ooYfaQw89lO7FAgAAQI6ifVpKMmIBAEB22rrVbOJEs0WLzOrVM2vXzqxcuXQvVXZYv369rV692jZt2uSe6/96AAAAoGC0T5OH9mnyEYgFAAAxjRlj1ru32fz5f01r2NBs6FCzLl3SuWTZ0//ov//9b3vjjTfshRdesAsvvNB6q8KR9caOHesG+2revLnrf7Zt27Z27rnnFvm+V155xSZNmuT2HQ0epiwVPQAAyBW0T5OL9mny0TUBAACI2cjt2jWykSsLFuRN1+upsm3bNrvjjjusV69eNnjwYHvwwQftt99+s1WrVtk///lP22GHHezSSy+1kSNH2v/93//ZOeecY0uWLAm/X7dWXXTRRfbwww/bM888YzfccIMLYt166602f/58u+CCC2zo0KH2/PPP27Bhw6xnz5527733/m99F9iAAQPc/FdddZVNmTLFxo8fb8cdd5zVrl3bHn30Udu4caP7u9NOO7npej3oww8/tOOPPz7m/A888IAdeeSRds0117hlrlixoltXLVdhRo8e7Zb7vvvusyFDhtinn37qpj/99NPWrFkzO/roo+3JJ590D62Llv/KK6+0X375xT766CO3nDvvvLM99thj9ueff7r1rlWrllvO4PLr9YsvvtjVucr56aefwq999dVXri6feOIJu//++10der4MreMjjzzisipmz57tlqNDhw7h5c1Fn332md1zzz1uu2i/1V8FWF9++eVC33f33Xe7fUn1fO2117rvgPYbAAByBe1T2qfFaZ9qO6h+M659GkLCrVq1KqSq1d9U2Lp1a2jRokXubzaWR5nZUx5lZleZubCOpaXM9evXhyZPnuz+lsS2bdtCmzZtcn9ly5ZQqGHDUEithFiPMmVCoUaN8uYrqegyC9OnT59Qr169ws979uwZ+tvf/hZ+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kJUyTfUoiY4dO1r//v3dLV+tWrWy2bNn25lnnmndu3d3r69bt85lqK5duzb8npUrV9rgwYNt8eLFLtD64osvukzW1q1bW8+ePcODU7z99ts2cOBA23vvvd179BnDhg2LGADivffec1mxkyZNcp+h9XjjjTdKtC4AAAAofZLZ1gUAAEBuKnEg9sQTT3QZorfccosdeOCBrnGqhxqkCmRqpLOnn366xAvWuXNn94hFo9QqiBqkQbZuvfVWN2Lv448/Hl4ejWwb1KZNm4jAa0GDVzz66KMlXnYAAACUbslu6wIAACD3lDgQe+GFF9pvv/1mp5xySjhDQIFQUTD0kUceCfe7mgrqsiDYd1dw1F0AAACgNLd1AQAAkMOBWN+X6xlnnGHPPfecTZkyxQU999lnn4g+VwEAAIDSiLYuAAAAMiYQK2qM3n///YlZGgAAACCD0NYFAABAomz3ffsfffSRnXfeebbffvvZ/vvv7zIEvvrqq8QsHQAAAJBGtHUBAACQERmx119/vQ0ePDg8WJZ8//337vatQYMGWd++fROzlAAAIC22bttqE3+baIvWLLJ61etZu8btrFzZculeLCAlaOsCAJB5aJ8iJwOxw4cPt1deecUeeughlyVQq1YtN3358uX2zDPP2H333Wdt2rSxk08+OZHLCwAAUmTMlDHWe1xvm796fnhawxoNbegJQ63LHl3SumxAstHWBQAg89A+Rc52TTBq1Ch3W9ZVV10VbphK7dq1XfbAF198YY8//niilhMAAKS4kdv11a4RjVxZsHqBm67XgWxGWxcAgMxC+xQ5nRG71157Wb169Qp8vUmTJtaqVauSfjwAAEjj7V7KNAhZKN9rmlbGylifcX2sc6vOKbkNbMuWLfbYY4/Zyy+/bBdeeKGFQiHr37+/7b333nbjjTdax44d7c4777SKFSvazjvvbNOmTbO7777bdthhB+vZs6e9++67dtNNN7n3adT7b7/91s444wzr1q1buIwZM2a4AZk0MNOSJUusRYsWdv7559uUKVNs6NChLjtSr+v2dAXnFIxTGfo80TRlT7Zs2dJWrlzplqV3795JrxskD21dAAAyR6a1TxPVRtV827ZtswoVKtjXX3+dkjbqNddck5L6QYIDsdpxiqIdKWj69Olu4wMAgMylPreiMw2iG7vzVs9z8x2121FJX57y5cu7BmOVKlXs73//u5v20ksvudvFjz32WLv22mtdUKxPnz7uNWUpKvD6yCOPuPkOPfRQ14h94oknXIN5w4YNtueee7oGateuXW3t2rV2yimnuEGZ6tev7z7j8MMPd0G2gw46yH2WGrnKgpTu3btbnTp1rHnz5m7gpp9//tmuvPJKmzRpUrh9pEa3GuL6i9KJti4AAJkj09qniWyjDhs2zH3WunXrXLdHqWij6oFS1jWBTmA+/vjjAl///PPPrWnTphHTtBMCAIDMpoEPEjlfomzevDnftAULFrjGrBqr3gknnGAvvvhi+HmlSpXsiCOOCD+vVq2aayz369fPPX/00UetUaNG4QauHHfcceHPKFOmTESZs2fPdn/VUJZbb73VTjzxxIjAnRrg//jHP+z3339PyLoj9WjrAgCQOTK1fVoa26j33nsvbdTSmBGrlOp77rnHDjvsMJfaHPTHH3+4frO0wdVIFWWffPjhh9u/xAAAIKk0+mwi50sUf4tV0HfffeeyXMeNG+cyCWTr1q3WqVMn1yguKKuxbdu2NmDAAFu6dKm7ZUsZBxqAydOtZcpgCNLra9assXfeecc+/fRTd9uZKEtBbZ6ghg0buvLVDjr11FMTsv5ILdq6AABkjkxtn5bWNup///vfiCAxSkEg9vnnn7c///zTpTjHosi+Nrq3fv1627RpU0mLAwAAKdKucTs3+qwGPojVD5f64NLrmi9V1AitXLlyvukKfokakjvuuGN4+sUXX1zo56kR6xvO+oxdd93V9dVVGP/6pZde6hrRylbQ7WJqZKtvryD/XK+hdKKtCwBA5sjE9qnQRkXKuibYZZddXKr1nDlz4noo7fnII48saXEAACBFNMDB0BOGhhu1Qf75kBOGpGwgBBk/frwddVT+/r6UragsA2UvBn3//fcRDU/fqPU0YNcee+zhBjRo165dvvf7eWJRdqT65/J9a2kZfvvtt4h5fv31VytXrpzr+wulE21dAAAyRya2T0tzG/WQQw4p5poi7YFYjexWvXr1Yr3nqquuKmlxAAAghbrs0cVGdxttDWo0iJiuTANN1+upoizDX375xRo3bhwxXQ3XBg0a2HXXXef64PJ029ebb74ZcZtYMHNRI8Y++eST9sADD7jnV1xxhcsKUEPa+/HHH23WrFnhcmI1gNWHqOj2dZWn7ElvyJAh1rt3b9evF0on2roA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btw4yWsMAACAbLdixQr3t3z5yCa4f+5fj+WZZ55xXRioPRyvQYMG2Z133plv+tKlS23Dhg2W7BOSVatWuROg4ixzaSozF9aRMrOnPMrMnvIoM7vKzIV1zIUy16xZU7oDsQX1ndWvX78CA7EDBw60E044IRyE9e9RNus111xjlStXdhV/3nnnRbxv3LhxblqTJk3C05RJ26FDh6SsGwAAAHKTb9vqhCDIP4+e7k2dOtUqVqxY7Luz1Ha+7rrrIjJiGzVqZHXq1HGJCck++dH6qqxUnnClssxcWEfKzJ7yKDN7yqPM7CozF9YxF8qsFIhFlrpArO87S8HTgvrOitUIVUD1xhtvzPceRb8///xzF5C99tprI15fvny5vf/++/bAAw8kaW0AAACAPDVr1nR/N23aFDHddx/gXw9SVwajR4+22267rdjlKXirRzSdjKTiJEgnP6kqK11l5sI6Umb2lEeZ2VMeZWZXmbmwjtleZtlifH75bOg7a926da5P2MLeo0BsuXLlIl5XH1u33357vmXQQF6DBw+2nXbayWUgKEM2OsibKf1v+XLow4QyS0N5lJldZebCOuZKmbmwjpSZXeWVVmrDqj3q24qeEgekRYsW+d7z9ddfu4Flb7755ohp6sZA0/bee+98d3wBAAAgM5XPhr6zSvKeb7/91gVPd9lll3yvqc8s9S/rI9rt2rVz2QSalmn9bwl9mFBmaSmPMrOrzFxYx1wpMxfWkTKzp7zi9MGVaTQg7JFHHmkzZ86MmD5jxgw3JkHLli3zvefQQw91j6A77rjDfcY//vGPpC8zAAAAsjgQW5K+s0rynvvuu89OPfXUmMvw/PPPRzxX37PKnr3iiiusQoUKGdX/ltCHCWWWlvIoM7vKzIV1zJUyc2EdKTN7yitOH1yZSG3KG264wfr27RtOGhg1apTdddddrh4nT55s55xzjj344IN29NFHx/yMrVu3lurMYAAAgFxVPhv6zirue1auXGljxoxxDeF46MRCmR7qo3avvfbKuP63hD5MKLO0lEeZ2VVmLqxjrpSZC+tImdlRXirrMRk6duzoBqZVILZVq1auW64zzzzTunfvHu5ya+7cubZ27dp87/3111/tiSeesJdfftl1V3DllVfacccdZ6effnoa1gQAAAClPhBbkr6z1BdsvXr14n6PBgNT0Fbvida2bVs76qijbOjQofkCups3b96udQMAAAA6d+7sHrEcdNBBLmkgFnVfoO6w7r77bheQJjMWAACgdCmfDX1nibIBYr1Hn3fEEUfk6x9Wogf3ksqVK7tBD4LmzJnjsmJjZcMCAAAAqRCddazkhejBaAEAAJC5MvLeLnUZMHr0aNuyZUt4WnTfWcpcHT9+fPh1jRqr58EBHPQeTVfGbNCSJUtiDu4lvXr1sk6dOoWfL1++3F599VV76KGHbIcddkj4ugIAAAAAAADIfhmXEVvSvrNat25tzzzzjAu8KqN10aJF1qRJE7vxxhvzff4ee+zhbvuK5fzzz7ennnrKXnnlFVfO1KlTbcSIEXbiiScmcY0BAAAAAAAAZLOMDMSWtO8sdWmgR1Guvvpq94hFGbcXX3xxCZYYAAAAAAAAAEpR1wQAAAAAAAAAkE0IxAIAAAAAAABAkhGIBQAAAAAAAIAkIxALAAAAAAAAAElGIBYAAAAAAAAAkoxALAAAAAAAAAAkGYFYAAAAAAAAAEgyArEAAAAAAAAAkGQEYgEAAAAAAAAgyQjEAgAAAAAAAECSEYgFAAAAAAAAgCQjEAsAAAAAAAAASUYgFgAAAAAAAACSjEAsAAAAAAAAACQZgVgAAAAAAAAASDICsQAAAAAAAACQZARiAQAAAAAAACDJCMQCAAAAAAAAQJIRiAUAAAAAAACAJCMQCwAAAAAAAABJRiAWAAAAAAAAAJKMQCwAAAAAAAAAJBmBWAAAAAAAAABIMgKxAAAAAAAAAJBkBGIBAAAAAAAAIMkIxAIAAAAAAABAkhGIBQAAAAAAAIAkIxALAAAAAAAAAElGIBYAAAAAAAAAkoxALAAAAAAAAAAkGYFYAAAAAAAAAEgyArEAAAAAAAAAkGQEYgEAAAAAAAAgyQjEAgAAAAAAAECSEYgFAAAAAAAAgCQjEAsAAAAAAAAASVbecszWrVtt9erVtmbNGitXrpxVr17dqlat6v4PAAAAAAAAADkViB07dqxNnDjRmjdvbrNmzbK2bdvaueeeW+h7Jk2aZK+99pq1bt3aFi5caLVq1bI+ffpEzKPXZs6cGX5+wAEH2BNPPGH7779/eNqUKVPs8ccfd/OuWLHCNm3aZLfddpuVL5+x1QUAAAAAAAAgg2VkZPGzzz6ze+65xwVWy5Qp46Z17tzZypYta2effXbM98yePdsuvPBC++GHH6xSpUpuWu/eve3ee++1m266KTzf6aefbmeccYatXLnSWrRo4R5Bmn7SSSfZV199ZTvvvLObNnjwYLv66qtt2LBhSVxrAAAAAAAAANkqI/uI7d+/v3Xr1i0chJUePXrYgAEDCnzPwIED7YQTTggHYf17Bg0aZOvXrw9PUzcEhx9+uAu2Rgdh5eGHH7Z99tknHISV7t2724gRI2z+/PkJWkMAAAAAAAAAuSTjArEKmk6YMMGaNWsWMb1p06Y2ffp0l/kay7hx42K+Z9WqVfb555/HXX6sz6ldu7YL4L733nvFWhcAAAAAAAAAyMiuCRRo3bJliwt8BlWrVs39nTZtWr5A6bp161yfsIW9p1OnTuGuB4YMGWI77bST/fbbb27QLmXT+v5fFezt2LFjvuXSZ+lzYtm4caN7eBoMTLZt2+YeyaYyQqFQSspKR3mUmT3lUWZ2lZkL65grZebCOlJmdpUHAAAAlEYZF4jV4FgSPTCWf+5fL+l7FHi9/PLLw10YXHDBBda3b1/XD6yfN9agXJoWq2xR9wd33nlnvulLly61DRs2WCpOSJT5q5Mg9aObbeVRZvaUR5nZVWYurGOulJkL60iZ2VOe2nIAAABAaZRxgVjfL6wa80H+efT04r5n5MiREfOoX9mePXvaDTfcYA0aNHCfFasMTYs1Xfr162fXXXddREZso0aNrE6dOlajRg1LxQmQllvlpeqEK5XlUWb2lEeZ2VVmLqxjrpSZC+tImdlTXnA8AAAAAKA0ybhAbM2aNd3fTZs2RUz3t/7717f3PZ5OGtQVwnfffecCsZo3+nP8ZxX0ORUrVnSPaDoZSdVJl06Asrk8ysye8igzu8rMhXXMlTJzYR0pMzvKS2U9AgAAAImUcS1Z9f9arly5cD+rnm55kxYtWsTsv7VevXpFvqdz587uEStYu3nzZve3ZcuW+T7Hf1assgEAAAAAAACg1AViq1SpYkceeaTNnDkzYvqMGTOscePGLlAay3HHHRfzPfq8I444IpytcdBBB0XMM2fOHKtQoUJ4nlifM2/ePBewPeaYYxKyjgAAAAAAAAByS8YFYmXAgAE2evRo12WAN2rUKLvrrrtcMHXy5MnWtm1bGz9+fPj1m2++2T0PDuCg92i6MmblkksucX3CehpIS33G6nPr1q3rpvXq1cumTZtm8+fPj/iciy66yHbfffekrzsAAAAAAACA7JNxfcRKx44drX///ta3b19r1aqVzZ49284880zr3r27e33dunU2d+5cW7t2bfg9rVu3tmeeecYFXvfee29btGiRNWnSxG688cbwPCeffLIL8L777ruuH9gpU6a4QbouuOCCiD5j3377bRs4cKD7nJUrV7pyhg0bluJaAAAAAAAAAJAtMjIQW1B/rp66F1CANJq6NNCjMF27di2y7DZt2hB4BQAAAAAAAJDdXRMAAAAAAAAAQDYhEAsAAAAAAAAASUYgFgAAAAAAAACSjEAsAAAAAAAAACQZgVgAAAAAAAAASDICsQAAAAAAAACQZOWTXQAAAAAAAACA9Nq61WzCBLOlS83q1DFr396sXDnLOlszeD3JiAUAAAAAAACy2JgxZrvtZnbMMWb335/3V881PZuMyfD1JCMWAAAASLGxY8faxIkTrXnz5jZr1ixr27atnXvuuQXOHwqF7KmnnrJ58+bZkiVLbOrUqXbJJZfYOeeck9LlBgAApY+CkF27qj1hVjaQkrlgQd700aPNunSxUm9MKVhPArEAAABACn322Wd2zz332KRJk6xMmTJuWufOna1s2bJ29tlnx3zPsGHDrH379nbxxRe757/88ovtv//+NnfuXLv55ptTuvzIHZl8aycQC/ssEPt70bt3XnAymqapKdKnj9oipfv7srWUrCddEwAAAAAp1L9/f+vWrVs4CCs9evSwAQMGFPieoUOH2hNPPBF+vueee9rpp5/uArqbN2+2TDsR+uSTvGCI/up5tsmFdUzXrZ3pqNtUl5kL+0861jMd+2wu7K8o/dty4kSz+fMLfl1Bynnz8uZLhlxZz3gRiAUAAABSZP369TZhwgRr1qxZxPSmTZva9OnTbfbs2THfV716ddclQfR71qxZY3/88YdlilwI3uXKOuoWzugTWn9rZ7LWNR11m+oyc2H/SVe9pnqfzYX9NdcCztn6W7JoUWLnK45cWc/ioGsCAAAAIEUUaN2yZYtVrVo1Ynq1atXc32nTpuUL0srXX38d87Nq1/7/9s4DPopq++NnU0gIpFACBAJIRxRQEUWKYAOsKPJ8ir089dmwYgd9FuzY9QmK7YkFRf8o2AsoogKCIIp0kNAhJAQSSHb/n9+dnc3M7GyyG3Z2k53f9/PZT7Izs3Pm3rlz5txzzz23iTRr1sxWVllZmfroFBUV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HYiqZE6fPl3ef/996datm6xfv14OOeQQueCCC/ZLHql7xMM+jbWNGmv7tDbYqIlqn8bDRqV9Gj3cYJ+6xUalfeqMfRoPG5X2adUwIrYO88MPP8iDDz6oHlJ9hHjYsGGqAUMxRRsoWCgFvMBee+01GTRokMQCGCMXXnih5Ofnq+9ffPGFerjeeuutqLxgrNx9992yePFiZehi5AvGbl5enjJ4o/Hiro6Kigq56KKLlGwnwUvl4Ycfll69eiljs0ePHtK8eXNHZcIo6NChg7qn4Mwzz1Ttd8qUKY7J3LNnj1K6xvpER+all16SUaNGRV3ejBkzlAFibCt4wU2cONExY/fpp5+W//3vf6ou8UJD+fByycrKkr59+zr+7K9cuVIuvvhiWbhwoXqRAtQt2hdehk7IXLNmjfz3v/+V+vXry6RJk/a7E1qdPNzDo48+Wi699FL1/ffff5fDDjtMXQeMTidkvvjii/LGG28oQxedz9LSUmnbtq0yPp988klHZFpBvS5fvrxGsiKRCTnDhw9XzysMpDZt2jgu8/7771edFrQjAAMQ75Wff/456vLgWIDjAu3VyFNPPaU6ajWhOpnYjw73DTfcYNJPY8aMUWV3QuZHH32kdB/eoYjo0jst0AtnnXVWjWSSukes7dN42aixtk/jbaMmsn0aDxuV9int02jJTAQblfapM/ZpPGxU2qdhgohYUjc59thjfU888YRp2/vvv+/r3Lmz47LRdCZNmuS4nNLSUl/jxo19Dz30kGn7EUcc4evSpYsjMkeNGuVr06aNb9euXYFtzZs395166qm+WPDMM8/4Lr30Ut/AgQMdlbNq1aqY3EOdN998U7VNr9cb2DZx4kTfBx984KjcRx99NGjbfffd51u6dKkj8s466yzfhg0bTNuKiop8p512miPyiouLfRkZGb5x48aZtt90002+IUOGxOTZv+SSS3zXXXedadu8efN82dnZvt27dzsi00jbtm19Y8eO3W85VclD27322muD7nVmZqZv7969jsh8/PHHfU2bNvWtXr06sO3II4/0de/efb/lhZJp5O2331b6EPUbLULJjOb9C0fmrFmzfDk5Ob6SkpLAtqlTp/omTJjgiDw7PQRZ33333X7LCyVz9OjRvh9//DHo2EGDBjkiE7odbeWKK64Ieqc59b4mtZN42qexslHjYZ/G20ZNVPs0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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Создание двух графиков рядом\n", + "fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(14, 6))\n", + "\n", + "# ============= Левый график: случайные данные =============\n", + "ax1.set_title(\"Вставка случайных данных\")\n", + "ax1.set_ylabel('Время, с')\n", + "ax1.set_xlabel('Повторения')\n", + "ax1.set_xticks(iterations)\n", + "\n", + "# Связный список\n", + "ax1.scatter(iterations, ll_random_insert, label='связный список', color=ll_col)\n", + "ax1.axhline(y=ll_random_insert_average, color=ll_col, linewidth=1, \n", + " linestyle='--', alpha=0.7)\n", + "\n", + "# Хеш таблица\n", + "\n", + "ax1.scatter(iterations, ht_random_insert, label='хеш таблица', color=ht_col)\n", + "ax1.axhline(y=ht_random_insert_average, color=ht_col, linewidth=1, \n", + " linestyle='--', alpha=0.7)\n", + "\n", + "# Дерево\n", + "\n", + "ax1.scatter(iterations, bst_random_insert, label='дерево', color=bst_col)\n", + "ax1.axhline(y=bst_random_insert_average, color=bst_col, linewidth=1, \n", + " linestyle='--', alpha=0.7)\n", + "\n", + "ax1.legend(loc='best')\n", + "ax1.grid(True, alpha=0.3)\n", + "\n", + "# ============= Правый график: отсортированные данные =============\n", + "ax2.set_title(\"Вставка отсортированных данных\")\n", + "ax2.set_ylabel('Время, с')\n", + "ax2.set_xlabel('Повторения')\n", + "ax2.set_xticks(iterations)\n", + "# ax2.set_xticklabels(range(1, 6))\n", + "\n", + "# Связный список\n", + "ax2.scatter(iterations, ll_sorted_insert, label='связный список', color=ll_col)\n", + "ax2.axhline(y=ll_sorted_insert_average, color=ll_col, linewidth=1, \n", + " linestyle='--', alpha=0.5)\n", + "\n", + "# Хеш таблица\n", + "ax2.scatter(iterations, ht_sorted_insert, label='хеш таблица', color=ht_col)\n", + "ax2.axhline(y=ht_sorted_insert_average, color=ht_col, linewidth=1, \n", + " linestyle='--', alpha=0.5)\n", + "\n", + "# Дерево\n", + "ax2.scatter(iterations, bst_sorted_insert, label='дерево', color=bst_col)\n", + "ax2.axhline(y=bst_sorted_insert_average, color=bst_col, linewidth=1, \n", + " linestyle='--', alpha=0.5)\n", + "\n", + "ax2.legend(loc='best')\n", + "ax2.grid(True, alpha=0.3)\n", + "\n", + "# Общая настройка\n", + "plt.suptitle(f'Сравнение производительности вставки в структуры данных (N = {countUsers})', \n", + " fontsize=14)\n", + "plt.tight_layout()\n", + "plt.savefig('../img/insert.pdf',\n", + " format='pdf',\n", + " dpi=300,\n", + " bbox_inches='tight', \n", + " pad_inches=0.1)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "7de42c9d", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABWIAAAJKCAYAAACmkjw+AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjcsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvTLEjVAAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3QecE2X+x/EfRRAQkKp0C812qIiNjorY/qhw6HFK0dOzAqIgWEAsYBc89ewgFiyI3qknFiwgcHaxoCBFUEFApEvf/F/fJzdxks3uZpdMskk+b1/rksnMPPNMJrPP/OY3z1MmFAqFDAAAAAAAAAAQmLLBrRoAAAAAAAAAIARiAQAAAAAAACBgBGIBAAAAAAAAIGAEYgEAAAAAAAAgYARiAQAAAAAAACBgBGIBAAAAAAAAIGAEYgEAAAAAAAAgYARiAQAAAAAAACBgBGIBAAAAAAAAIGAEYgEAAADktFAoZNddd52tXLky3ZuCDDNv3jy7++67070ZAIAMUSakVgcAAAVYvXq13XPPPTZr1izba6+9bI899rAKFSpYv379rE2bNvaXv/zFJk2alO7NBACgxK6//no76qij7NRTT7W8vDzr06ePbd682aZMmWJ169a1L7/80v0N9Hz99dc2dOhQe+edd9zrLl262O23324HH3xwGmthtnjxYrddL7zwQtz3p06dai+++KIdcMAB9sMPP1jz5s3tsssuyzef/u7/+OOP1qBBA/vmm2/s3HPPtc6dO0fNs3HjRhsxYoRVrVrVKlWq5AKSI0eOtH322cfS6eyzz7bDDz/c/vznP1vt2rVtzpw5LlA6duxYa9y4cWS++fPn2x133GHNmjWz9evXu8/7pptussqVKxd7nz3yyCNWpkwZ+9vf/payegIAMhOBWABAgd58803761//aoMGDbIrr7zSdt99dzd9+/btdvPNN9vy5cvdxQd/SgAAmerzzz+3hx9+2P75z3/me0/Bx/fff9969OgRN7ip5cqXL2/nnXeepdt7773nbpIqEKp/x1I9rrrqKndjdbfddnPTtN0KMA4ZMiQy3y233GLLli2z+++/371WgLJt27b2j3/8w/32nHDCCXbhhRe6gKcoEHvaaafZf//7X6tZs2aJ6rBz504XFK1Ro4aVVKdOnVxdPRUrVrTx48e7G8f+m8xHHnmkC6Q3adLETZs4caI999xz9tprrxV7n4naS7fddps1bNiwxNsOAMh+BGIBAHHpIq5r1642btw4u/jii+POc+aZZ9pLL71EIBYAkLE6dOhgjz/+uDVt2jTfezfccIOtWLHCHnzwQff37vTTT4963wt4KviXLsr4vPXWW61Ro0b2n//8x2WBxgvEKvDYv3//qL/pWvbYY4+1n3/+2fbcc0/79ddfXdbop59+6oKNHrUFFKRUQFJUjgKSuiGrTFDPGWec4ZYbPXp0ieqijNPp06e7jOSSUtBcwWh9bsp2VZ39mbCirOElS5a4OvmDwMp6fuaZZ1z7J9F95tG+Uebt5MmTS7ztAIDsRx+xAIB8fv/9d+vdu7e1bNmywCCsd2HmvwADACCTKOOxWrVqcYOwHi/L8ZJLLrG1a9daadOqVSvXRZC6RlAQtqAuCz7++GP705/+FDVdXSls3bo1kgX6yiuv2I4dO9zf/9gyZs+e7YKPogDmIYcckq8NoPkK6hYhUeoaYleoq4S77rrLnnrqKddVQmwQ1tv+2H1Rrlw5tz+87U90n3kUnFUgeeHChbu0/QCA7EYgFgCQjx7hU5aLHrMrjLJvYi9QACBVlI2/q0GbTCxbmXtIzj56+umn7fjjjy90HgVq1W2B/i7qMfVM9Nlnn7nfsY/8K/hYvXp1F3D05lOWZ2yAtVatWu63f7543QdovgULFpTKgLW/W4KlS5cWuP3+Oiayz/yUGU2/+QCAwhCIBQDko0cO5eijjy5yXmXgyLRp09wjfLqI0TT1MXfjjTfagAED3OAn6oMv9iJZj3rqMT71N9u9e/dIuR5d+GpAMF0QXn311S7DRb9POeUUN1CKbNiwwZWnAUU0wIbK1MWyBtZQ/3VaVoOMvPHGG5H1vv766+5RQz3KqcdOtc4tW7a49/RIodav5Xr16mVvv/226/du2LBhVrZsWTvwwAPdNisIo996rf4BNWDJt99+6x4H7du3r1te6/FnBn344Yeu/z7tGz22eemllxZ5saq+8lSnvffe2/W5p23W4CIaEESPha5Zs6ZE+9/bfg04cuedd7rfejTXc99991nr1q3dACwffPBBvu1SXXQhqs/H60dQ1K+gsqg1+rg+L9VX+0W+++47NyCOLmL1uKjeF22HXmu63p87d6699dZb7nPTftT263PRY6aqv4Ii+rxVz3Xr1hW47zTAjPrw03qPOOIIV0/9aDllbWm63v/qq68iy+jzUtab5tFnOnz4cDcgjUf7SFlP2q6BAwe6/aCL9SuuuMJN03uPPvpoZH59PlqfjolRo0a5OnuD+2hZfT5a7phjjrHHHnvMTdfxq2NZn6WCPuqTOdHvTCL74rDDDnP7QftS3YtoXYl2L1JYfSZMmOD6WtRnqONPx6seD1Y5gwcPdgP9KVtM3yV93nqtY+uaa65xWWvqZ1L7cdOmTZHvtgbOUXabfjTQjv/41PdR33ENouQ/XvS98x4N1iPEmqabRtom0TGpz0n11v7V+wqeKOtR69h3332LVbbeO+igg9xxqWxCHfuqjx6t1nd01apVUftQx7GW0WBI2heqt84xHu0jrUPr07Y98MADbroeFa9SpYrL7tM+1pMLRZkxY4ZdcMEF7njXeUOfuz7/2GM/kWPLf+z//e9/t48++sgFoi666KKoY7845+TYc4K2MTaAqn168sknu+V0c1DL6bhRvTRNQUNlaorqoGn62/XQQw8ldEzr3Onv97QgOg9pECh9T71jPpNo4C3x+nr303nee1+/C5rHv55E50sHnc90LOp40t9a/S33n+eLsy8Smc9P53IdUwAAFEh9xAIA4HfggQcqKhP69ttvi7Xctm3bQnvuuWfo0EMPDf3yyy+R6S+//HKocuXKoQ8//DAy7a677gq1bds2tGPHDvd66dKloSpVqoRmzJgRtc7HHnvMbUteXl5k2qhRo0L16tULbdy4MTLt3HPPdevze+utt9yyCxcujEx7/vnnQ+3bt3fb6hk4cGDovPPOi7yeNm2aW+7777+PWl+DBg1C119/fdQ0vW7cuHHUtNdff90tr/V4Pvjgg9BBBx0UWr9+fWTaPffcEzruuONCiVD9OnToEDWtS5cuof/7v/8r0f6/7LLLQkOGDIm83rlzZ+jwww8PTZw4MTLt0UcfDZ1++umh3r1759ueJ554ItSkSRP3+XhWrVoVatasWeiLL76ITPv8889DderUCa1evToyrVGjRqFrr702an16rel++ty0H995553ItM2bN7tytT8SpfWOHDkyatqIESPylXfnnXeGzjzzTLcvPC+99FLoyCOPdOUWdkzqu6Jp/v2hz/rggw8O3XLLLZFpL7zwgvsslixZ4l6rrNjlVN/TTjsttHLlyqjtS/Q7U9S+UN09a9eudcfM3XffXeSyRdVn/PjxoXfffTfyXseOHaM+pxtuuCG0ePHiyPdQ9b7mmmsi72t/av8fe+yxoa1bt0amX3fdde4Y2r59e9T2nHzyyVHTvOPF/72bMGGC+25v2LAhMu3SSy+Neh27//v161fssj/66CO3nj59+kRNHzRokPtO/Pbbb5Fp3bt3Dw0dOjTyevLkyaG6detGzSOvvvqqW6f3vdV6O3XqFFqxYkWoOHRe8J+34h37xT0f++uof8fuw+Kckws6J/gVdE6+6qqrQnvttVfkvDp37txQjx49IvUoipbTev1/S2L5zx36TtaqVSu0//77h37//Xc3Tce8/7gvzJw5c9x5P9GfsWPHus+iOPS900+sm266ydXV+w766W/YCSec4P6tv0k6x8ZatGiRW977/pcrVy7Ut2/ffPM9/vjjbr6ZM2eGSkLbp3PJrtB3Xtvree+990I1a9aMnHd1XGsb45Wj7/Buu+1WrH3m980337hjBACAgpARCwBIGo0orCzJ//u//3MDXniUXaW+5DS6sp8eDVRfdKKMNWWVaZAMP2Weif8xyUMPPdRlWPn7YdN8ykz1815761DWq7JQlQ3rjX4sGklZ3TF4mXje/PHW573nL9e/bb/99pt71NW/HlHWmAYQUXadv1xlzigDtCix5Yiy3JTxVtz9r8w6ZfX5+//V+pU1pFGxPcpSU9bZlClTXL38WZHeACX+OipDsl69em67/J+VMjufffbZqLIS3bfir7eyK5UVGDtvUfsultbpn65HaZUZrcxN/3QNzKMMP5Vb0Hapr0CNnB5bljIw9Qissh49ymxW5nKFChWi5vd+//vf/3YZfxoUqE6dOvm2O5HvTFH7wr8/dbwoA9R/HBUkkfooKzK2PI/m83h1U2a3R9ulbExlN3pZoN48KtffH6MySJXN6z+OYvelPhMNPKQMRmXfetSdiv91YduZaNlefZRt65+ubE/1qanvhr+eOt48yvZcuXKly+r1U2avzlfKrFX2q7JZlX1et25dKw6d9/zbFHvsl+R87F9f7Hm2OOfkwuYtqlzvmKxfv77bT+omQucvjXyvc1cilH2sY1fnlEToc1Y2s/726LMtLh17gwYNSvhHWff6LJIpXva7pvmnFzRP7HuJzpdq+s7rvObp2LGjOyb838NE90Vx5vO6MdA5w/8kBQAAfgW3eAAAOUuPEys4qOBA7IAdsfTYbWzAKN4AXieeeKJ7RHXRokW23377uYCXgpN6FFwXwwou6DHzoh631fvqsqBnz55uwIzi0OOs2t4vvvjCPcLq2bx5swt6qPxEL8gLokCSRmPWICEeBV3UlYIClP5yvcddt23bVuxyNNqzAqTxggFF7X8F+USPHvsDFgo4qqsFP73Wo8xPPvmkCwp4y+lx6lhar4IisXU86qij3GPWu0rrV1cI8UYD31UKFOuR6Nj6i6YpIKVuLOLxHr3Xo+axg8Foe/1Bp3bt2tm7774bdz0KsulRWj2uHS+QVNLvTGHefPNNdyxp4L2iFFUf/dsLyMaj4yg2ABp7rGq0dQWedGwrECXq7kB9eD7yyCPupoI8//zzbn/Eo+CIujtQtyLq/iFWly5dCq2nHp/3FLfs2PqoewZ1i6H6eN0b6DhWFx733nuvC+JrHon3OSr4quVVth6Lj3d8FkXdm/hHdo8niGMrFXS86bupblR0/tJ3VN0hJErLxOsntDDnnHOOK1Ofpz6TTOF997xgu5+6P/H+9mm+guaR4s5XEAX+9XclNpip7no0SNZPP/2Ub5nOnTsn1I1EPOrSY+rUqZFtT3RfJDKfn3c86diKPd8BACAEYgEA+XTr1s0F2/773/9ahw4dCp1XQVH1pVkUZUp6/SMqEKt1KwNT2XXqh1OBp8Iy+3TRq6CFRrj2+heNzarShZu/L0d/1pkosOxloCkw6ae+KWOpT0QvSOIFNIraF7ow92e9+stt376961vRT8GPRHn103boglL9SPozChPd/972aNmKFSsWuayyYrW/vUCsAtfxAm5ar+oYW6d4ddTn7/+s9LowChaqP071valgZbIpKOBliMbrC1Dlx6MMVgXYNaJ6LGVCKjiZCGVvKkNZQXl9J/z7xlPc70xBvH2v40k3J5TtmUh/0EXVp7BR573s2USPVR2nfjpWlUGuPhm1Hu2nggI96hNSfbMq0KkAsxfQTXQ7Y98vTtkF1cd/fCuoq5siulmjTD2vjHjUN6WyPBU8jq1HohRY9WcHxlOS83Eiijonx26D5tX5RftaN9rOP//8Is9Rulmovn71eXsDShVHvBtXRdHNJm/7FCz3P2FRWnmZtd6TH36a5p3DNF+8m13ecv75ClqXf77CAqPXXntt3ONV5Su7vCT0d1E3PtR3t79vVwXovf6ai7MvEpnPL52ZwACAzEAgFgCQjx7dV2anLsSV3VmYRC9AlQEmypjUhbYe+T7ttNPcwD/xeJmzHi8IocfHNXiLHrV/+eWXozJ2dVHkD1boYs4/kJTK9m+Lnx5rjQ3sKpij7OBEgg8aDEsBGj3WrAtJv8LKFWViJvIorb9+Cn5feeWVLpNXmYpFZd74979/e2IDNPG2RQEaBWFnzZoVGQgnHq030TpqHf7PSllQygSNR9lIGvxHAwkFxXvcWxfXsYF0ZQbGexxcwSINVqRBnQpaZ6IjhyuArwGMlF2uz/Skk06KullQku9MQfz7Xo+t68aLssy8wawKUpz67AodQ7HBUGWE6qaIbo4oAOZlp8Zz+eWXu+45dMNCx62CmHokvKSKU3ZB9dHAVV63ILoZo0xALwjr5w2+52XVKaijQa70fdf5SDcj/N2OJEKDauk7XJBdOR8XdiMrkXNyQcelupQ47rjjXN1ju2yIpcfAdVzqJpC+Q+ruJdGuS/Rd9/Z5cSiIOGbMGDfIoQZ5U/AvEXoaw8vKTITOtzo3KDN7Vylr2Nu3fjoHKHvz8MMPj8ynz0gZn/6/794NPP988QLrmk8BzNq1a1s6aHBIHdP6m+6n84H3PVTAXvs0dl942++vYyL7zM/rxif27wgAAB76iAUA5KOgnrK19Di9fwT4WOrL0btQ8VPmaqzXX3/dXWjr4kcjuCvjTY/lx2bceRSoKIgCBspsKW4ffeq/UoEBZdXGy3Dy94NaHLooUx+zAwYMiPu+grl6pDteuf/617/c/igJZQwpc/mJJ54o1v5Xtw66wI+3PcomjKXsv969e7tjQaPQF9QlhII9CjTFZg/ps1IWYEkpAKuAWiLZuyWlPj9Fga54wZN4XTEoABMvo8uj/awgmPeorj+Aq0xaP6/rBgVFFUjs27dvJPAhu/qdKYgyxtR3sT73oo7D4tQnUbHHqs45yqI866yzoqYrA1tBNvX9qOC3HtcviLcvFfDU/lQ2qwIzJVWcsmPro2P/k08+idRH3TgouOr/HP2fob5f/mNQGb3qI1aP3CuYrJtkxaXHvL0AVDxBHVu7QkE8BZ7feeedQo9L7UtlyWv/6Pykmzm6aZMonQ/1mZXk+FDQWjcwFPhNlPrMVtZxoj+68ZiMIKz/75DO0bE3EXUe0N9V0W+da5VRGjuf/t57AXmd77/66qt85wPNV1jgP2h6ikffOX8XFfobPX/+/Kjt8v5e+akuOt68+RLdZ34K7CvQS7cEAICCEIgFABTYT6IyTnUhqMyf2ACDHmfWxU7Xrl3zLaugjP8xfvW/qYwqBTJEF5YK7unCyKMAhbIBFcTTsl42jTIpY+niTxc7/mwUZb/EPhLoZcR4vxVQUVabHlvUtvsz1jSwhtcNgTd/vPXFZtnotTJjFJDzHnGNLVe8IKYCrx4tp+1IJFsv3n6YPn26y/zSxX1x9r8CqQpcKOvZnw2moId/Xb/88ov78R6dVt+Y/r5etU3+Oiowvv/+++cLkOuRYfWr6N9nie5bUXZo8+bNC523MPHm1wW3f5qOJT2SrX3i39cKcqu7AgV7YrdLgT7v0dd4n7mWUWZjbMasBkrzHvH35vf3E6w+ZxUI0T7ztqU435mSHEdatqhBgRKpT+w+jte3op8/wKd9oQx8ZQTHe1Rf0xT0VTZiPPH2pW4AqFsJDeYUjxdEKmo7iyrboxtY/mNb3wUNeuVlTHp9vPo/R2V96viO/Rx1/tX3Vln2OrdMmDDBfUcT7RbAO+/EdsOi7fMfB8U5tuKdG+Md+4mekws7LrUNyrJXdnS8z1br1vGiwJuOS2Vs61hU9rAC5onQ+UyfqbIo41HGpwLZ8egz0f4N8gZRSeiYjg2OetTFjM5p/sCzsl/Vp7LX17uCiDpu/ZnL6itY31V/tzDq4kf9f/u/wwpiKhjuH9Av1dRdhI4BBV89Oq+rSyP/3ya1bfS5+z977RvVyX9TIpF95qf+9XclAx8AkP3omgAAUCBdjOgiRRmJCrjqolgXrnrE3Mvci0cXaLpQ0XzKCFMwTwFH7zF4XbwokKsRjBUA1SN86kdRo10rCKOAjy6Y1Deigg+iQKfmU+aWMnH1GLUupBQkUNaYBh1S0EDLXnjhhW4UeGWpii4KlVWm+ijArAwmZQAq20X1UeaM92jtpEmTIsvpQkuZibpQ13YoQ0xBTQXfFLRTgFqvddGr/mGVNal5vCxiBdSWL19uf/3rX92FmQYO0vZpECEFNnQhX1TXD3osXvtf9ROVqaCEAjT6bBTEiR28pKj9L7pQVYBDWbUKzGo08hYtWrjMVy/bU30fan8oaHvGGWe4R3+VAaSLbV2Yqq7KJNYFqgJd+ny037VurVf7V4ET/VvZQf7lFNRV36v6bLSf1L2Cpmt/KPtQQS/vs1fwSUEWBVweeOABl52koJECgjoGCxqIKLY8fc4qz/vc/OWpqwsdEzoGdSGvz1xBau1D9aPq9R2rz9k7PrRuZdJqHi/I7d8fCg7NnDnTHUc6NtSNhoJH2scK+qurBy+bWX3EKhioLDuNyK7AlB7J9gZZUzZ3It+ZgujmhbZbNx2UHa1jWIEK3RzQZ6SgV1EDqhVVH4++tzo+FQxTUEbfXe3feAMbaQAvfY66SaJt1DE2ZMiQuF11aCAvPc6v71MsZYZ7x4syIvUosbZr3rx57maF6q5zhfafAqN6nF37XJltonOI9o0G5tK+Lk7Zfp06dXL1UXBOQTztMz2O7/Upq++mjiHtQ52L9JlrGX0H9Pkp+K5jT+Xou6fvqM5rWl77U/Nr/+gY0fcq3hMJonOc9odu/OhcpX3rv1Gjuuqcp++zum5I5NjyH/s6TnVOFe8Y9o59fZ8SPScrCOwdl9oGHZdah4JZ+r7qJoGmP/TQQ2451V2ZstoPusGj9/U5exmM+k7pfKztVt/UOj/EC5b5qQsELRd7Y0+Z1HpqQH9z1N2M1qWscD99B3R+THcwVucyHfc6rpW1ru+ljiH9ndE5zsuI1vdL+01dQCgwqSCz6h07+JyOT32PNV1/95Wprr9DGizLTwPP6fPVj87n+tx03kpXtwSivzV6OkU/Oq/oXKBjQMeKP0tVAWf9bdHfA33PdGNUf291A8Qv0X3m0bFU1ICAAIDcViZEj+IAgCRS8E0BgoJGmEew2P/IBApOKqijoIa/H+bCKPimoK5uEqRaUWV7A2IpoK3A6q5Q01w/ifZzGo+ClQouaQA4r79ZPwUXFdxUtrB3EyGTKFCqG1klGWgrlgKHusGjoGKm0v7w+nT1jpt40zKBvksKmnqB/kyjm646lvR0CAAA8WTOX2UAAADkFGVhqs9Y0SB9GlQq28tWcHFXA2daXpmw8YKwogG/lLme6GCLpY3ql4wgrCgLWhmlCkpnKu0PZeX6j5t40zKBukgp7oB4pYVuxOjJEoKwAIDCZNZfZgBAqVdY/3QIHvsfmcA7Rgs7VtWVgB6Bf/XVV133CeqS5JhjjknJ9hW37ETqk0p6nDyRQKW6IMh12k96DF99gSL91C2J1xVMplGXQPfcc0+6NwMAUMoRiAUAJIX6jlT/eerrT4+66tFYpA77H5lCfVleddVV7t/qg9nr2zWW+qxVv6Vr1651/eSqT+hUKU7ZGgBQ3YHIlVde6fpWTjf1c5wIb7tznQZoUp+06msYKGkGvfrOb9iwYbo3BQBQytFHLAAAAICcpj5V1Q+wBjHT4IBAojQooQaV040YAACKQiAWAAAAAAAAAAJG1wQAAAAAAAAAEDACsQAAAAAAAAAQMAKxAAAAAAAAABAwArEAAAAAAAAAEDACsQAAAAAAAAAQMAKxAAAAAAAAABAwArEAAAAAAAAAEDACsQAAAAAAAAAQMAKxAAAAAAAAABAwArEAAAAAAAAAEDACsQAAAAAAAAAQMAKxAAAAAAAAABAwArEAAAAAAAAAEDACsQAAAAAAAAAQMAKxAAAAAAAAABAwArEAAAAAAAAAEDACsQAAAAAAAAAQMAKxAAAAAAAAABAwArEAAAAAAAAAEDACsQAAAAAAAAAQMAKxAAAAAAAAABAwArEAAAAAAAAAEDACsQAAAAAAAAAQMAKxAAAAAAAAABAwArEAAAAAAAAAEDACsQAAAAAAAAAQMAKxAAAAAAAAABAwArEAAAAAAAAAEDACsQAAAAAAAAAQsPJBFwAgdb788ksbPny4zZ8/3xYsWOCmtWnTxurXr59v3t9//92mTZtmeXl5Vrt2bWvdurWdffbZ1q9fvzRsOQAAAIJGWxEAgPQqEwqFQmneBgBJpoZzlSpV3L+3bdtmu+22W9z52rVrZzNnzrTXXnvNTj755BRvJTLB4sWL7ZVXXrELLrjAKlWqZJs2bbJHHnnEzjzzTGvcuHG6Nw8AAJQAbUUAANKDrgmALFS5cuXIvwtqWEv58uXzzQ/4XXnllTZw4EB77LHH3OtHH33UrrjiChs8eHC6Nw0AAJQQbUUAANKDQCwAoECHHnqou/hSRowceeSRLjP2T3/6U7o3DQAAAACAjEIfsQCQYdSjTJkyZVJS1nXXXWc1atSwm266ybZs2eLKvvPOO+3iiy+2TJDKfZUL2J8AAADZi7Ze8rAvURAyYgEU+IdDj6P36dPHRowYYVdffbVdeOGFNnfu3Mg86i901KhRduCBB7o/Mscee6zdcccd7r17773XunTp4qYfdNBBbr4NGzZElv3pp5/s/PPPt169ernH3EeOHGkPP/ywC/bJP//5T+vWrZtbXuu/4YYbIstff/31bnrNmjVdQHD79u1F1keBRGVzett5880324033mh//vOf7ZxzzrGlS5cWa/9s3rzZ1emUU06xQYMG2TXXXGPjxo1z9fJ766237NJLL3XBzGuvvdaVq+Xq1avntkX7QH2wavAM1aVcuXJuuv69bNkytw7V+8QTT4xs+4wZM+yDDz6wAQMGuMcJK1So4Lbh/ffftx9++MFtiwbd0Px/+ctf7Omnn45sz6JFi+zBBx+00aNHu89U633ooYeittn/uWp7Jk2aZEcffbTrH+64445zr8uWLRv1uWqaBvBQmXvuuadb97fffmuzZ892n2/FihXdj7o6UF9zem/YsGFuv2gZLat1xPr444/dMt7yWpeW1z645JJL3DQt3759+8hxMHToUDdtr732cvt++fLlCX2mqocCzy1atHDHhT4r/RxzzDFufdoHqq9/P6m/3Ntvv90dk6effroNGTLETffzH8sNGzZ0Zeizff311+3vf/975FjW/vjmm28i+0yfq97T907zahmV06hRo6jPNvZ7qO3V5xtr5cqVUctrn2t5Hfsq2zsmmzRpYt99951b5t///rd7LHX33Xd33xNtGwAAQluxcBs3bnTbofK17arDVVddZb/99ltknvfee8+1tXr37u2232tLtWzZ0u0PdQ+lOug9vyeffNLVXe0c7Xft0w8//DBqHtX5rrvucvtQ5auNctlll9mPP/4YmefXX3917Zt99tnH9thjD/f3X+0obWv//v2tc+fO9tJLL0Wtt1OnTta8eXM3nz73Bg0auG2+6KKLXDlqK3rBJ3/70GvrfP/9967e6upK7Ul/+1DtIA0ep3EI1C7RvJpPP3/9619du3X69Olx97fahueee64bjE77Xduvtquf2j09e/Z026Pt1uerz1nb3rVr17jrfuGFF+yee+5x8/bt29d9VmpP+/nbdGq/aXvVZopt7+pY+M9//pOvTad66XiWMWPGRNqeOg5vueWWfMe7lvPak7F0LHjL67fqJzqeDj/8cDddT7d5n6sG7fOuG7QdOrYSpWsY7ee9997bHaMqS/XVMa39oONX1ywe/fsf//iHq5OuY0466SR79913o9YZu8/OOussdxzpXKIydK7QdPVZ/cADD+TbZwcccIA7DjW///jTMaV9rvOK//Pyri/itXH12au97e1zb3ntI7X7NV0/+g7Kzp07I9uhpwf1GQFxabAuANlHX++ivuIdO3Z087z77rv53uvbt2+of//+oR07dkSmLV68OLTffvuF3n777ah5H374Ybeet956K2r6c88956Y/8sgjUdO//fbb0F577RUaN25cZNpPP/0Uql+/fujSSy+NTJs/f75bXuv3GzhwYOjcc88N/frrr6HiePPNN936Hnvssci0nTt3ho499tjQPvvsE/r9998TWs+mTZtCxxxzTKhXr16hbdu2Re3Pgw46KO4yw4cPj3r917/+1dU31gUXXBAqV65c6LfffouavnTpUlemttfv6KOPdtPjlae6bt++PTJNn2XDhg1d2Z4VK1a4z+Lqq6/Ot46CPtcnnngi7ueqfaHpvXv3zrcu7eO2bdvmm655tYx/P8aj5Y888sh805955hm3/H333ReZ9vXXX4cOOOCA0C+//BIqiYceeij0/fffR17reFEZOn78zj777NC+++4b2rp1q3utfX3CCSe4bfV/b/zH8jXXXJOvPB0H/s/EX+d4x4jWEfvZ+j+v2O0saPnY4/27774LVa1aNdSzZ8/ItLy8vND+++8fmjlzZqHrBABkHtqKwbUV16xZEzr00ENDjz/+eNT0V199NdSsWTNXF9F+veiiiyLvL1y40JV/7bXXRqY9++yzoZEjR0ZeDxgwIF8757rrrgtVrlw5sl61TdQmGTFiRFT5n3zySahJkyahL7/8Mmr6sGHDXLn6TNevXx+Z/uGHH4YqVaoUuvnmmyPTjjvuuEg5ov3sb5eo7XDggQfmax/GtnU2b94cqlmzZr72ofb3X/7yl1CFChVCgwcPjrSz5OWXXw6VL1/etUX9Hn300VDr1q1Dq1evjkzTZ9WpU6fQmDFjoub1tkfbHbsPKlasGPr8888j0x588MFQlSpVQl988UVk2g033BCqVatW1D7w6PjUsRKvvdugQYMC22Q6juMdh7Hfl8Lak/GW/89//pPvGkbHpbbFv1///Oc/R33Xiuuqq66Ket2oUaN8+0Htc+1f7VOPjn99nvpeJHqN4J1L/G11f51jzwXe5+3/ThX1ecVbfujQofneu/DCC917qptH1yRnnXVWkdc2yG1kxALIRxmSuoOou7+6o+nR3XLdyVVmgv9uvjfIgzegg+h97y6lf7ra/boz2bRpU3cn1KM7iMoc8PPW6/3Oy8tzdxz3339/mzhxotWqVatY9fLWo7vvHv1bd96VSRp7d7sgutM+Z84cl5XhH+Bi7dq1BS6ju61+2ifxBsfQ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m78MDYogaph71HhStqTX2FWDw3ucxltWDdyiPlf/63jdImhavPp60/yfo7I5dCyo7t5FgubzHwcePbalPq68/av+tTSSsC5Q1CgqDgXP1V+uGqV+3rb566WGZOy+1DbqAkifXUH7srj7pqD5/ev0z+/fXu/fCqSrce5l8cT7Xnl92umiVQOyeRTY1p1+BbaL2x0HAKD0oq0YbFtRTxJpXXfccUe+x6oXL17s6hfvUXBvPxf0mSgZQAFuZT5qPR5l7qlLIW/fKENSAS89JeW/Ma02k9pIerQ73sCkCpT7+7tXUEl1UfCzoIzYorbZ26d6fFvdORWnPayb7V5XFaJuA5TBqe6r1DWXKHtRbb5rrrkm6saAsq+HDh3q+qE988wz821PLD2er+Cr9q/aTRr4TFnW6kPVvw/VzjzqqKMiQWL/51hY262wdnDsMsVp64mOd9108J5eK6itp2SRk046yXWt5fUzrECi2rX6bIrzRJk+Fx2HykCPpe2LrZOuQ/Sd9AfX3333XatSpYrrL1bbHLsvS7JvEp3fmxa7L3U9oGNBXXvphk5B+1LrVd3VZ7GSQUTHha6bdB1Y1JgOyHEhAFnjyy+/DHXv3j3UsmVLtRbcj/6taZ988ombZ+fOnaEzzjgjdOyxx0bmqVu3buiUU04JPfHEE5F1ab77778/1KNHj9Dll18eOv/880Nnn3126LPPPovMs2HDhtDw4cMj5XXp0iU0ZswY997o0aNDRxxxRGQbNN+6desiy/7www+hvn37ho4//vjQJZdcEhowYEBoypQpkffHjRsXOuGEE9zyzZo1C1199dWR5fVvb9vbt28fevXVV4vcN9dee22odevWbpl27dq511dddVXopJNOCrVt2zb073//u1j7euPGjaHrrrvOlf+3v/0tdMUVV4TuuOOO0I4dO9z7b731Vui4445z7z3zzDOR5ebMmePmrV69utuW8847L/Tyyy/HLeOxxx4LTZo0qVjbtXDhwtCVV14Z2nvvvd369fmNHz/evbd9+3b3uRx11FGhwYMHh0aOHOleb926NXTZZZeFDj744NAtt9yS73Pt3Llz5HO98cYbI/vR/7nq2FFZml6tWrXQoEGDQl999VVoxowZ7vMtX758aLfddnPlvP/+++5Y1WeuebXMRRdd5D6TSy+9NNShQ4fQwIEDQ7/88kto5syZ7j0tW65cudAFF1wQevfdd0PPPfdcqGPHjm7ZypUru/k8J598sptepkyZ0F/+8pcC969n1qxZ7nOqVKlSqFevXm47/D9efQ899NDQkCFDQitXrnTLTZ482R07Wlb7Uvvi559/Dj311FOhxo0bu3pr3/iP5fr167t1/Pjjj+6Y03dA0/fcc0/3mej40D7TflKd9V6/fv3cvFpGx2zsZ6vPS+ts3ry5m65jWtutz0Df6549e4a++OKL0PLly10Z9erVc/PpvUcffTT0+eefu3rrM9L0e+65J7Jvbr/99qjv2l133VWs4xEAULrQVkxdW3Ht2rWhoUOHhv7617+6/aPfaufo73GsN954w83rlV+7dm33d9z/N9nv8ccfd/XSOjWf6rt69eqoebZs2eLadfobr/K1L9WmWLBgQb71qT2hctUG0br0WVx44YWh008/PTR79ux886vtqHaw2mUVK1Z0y3br1s3tM7UrPP724V577RW65pprQt9++23ozTffdNui6f72oUftKr33zTffuHattqd///7u+Jo7d27cfaJ1qs1z8cUXu+NF2/7CCy/k22+arnU3atTIba/W3bt3b9fO87flRe2nU089NXTmmWeGrr/+ejev2pz6Hu27775u/6u+OjbUpvfqo/K1L9UW1udTtWrVqHa/2nT6vBs0aBD5XowdO9aVOWLEiMhxcOSRR7pyRW0wtck1/cADD3TbrvaftkFt55deesnNd8MNN0SWb9WqVWjYsGHue6H2aq1atdx0fd89umbx2uP77befW6f/exiPPh99d9UmjW0363tatmxZ167U8eFdB61atcodU506dXLHgeql40PnCH3fdN30/PPPu32m9qp3raRzkTef6qLvuqbrvHD33XdHtkf7StPVHtZ8ml/LeZ+39rX2+ZIlS9xn0KdPn8h1i+bXNml7dZ2k9eoYf/LJJyPL6xyoz1LLjxo1KnJO22effUK//fab2w59rl57XJ+5vu9q2wOxyuh/6Q4GAwDy091qDbLk9eWKP3h3r0s6sICfHsfSwCF6lFF3teONHKv+xZT9qsyfp556KqG+sDKFmgHan/FGYAYAANlPmbrqCktZtv5Bo9JFbTP1J0uoInmUwZqMtp7Wo2xqPZWmrFFvnAQ/dQehJ+7Utta4CsowzSbaB7oGSWW3bcgudE0AAKXAjz/+6Eb5VWNF1BDWo/kEYeNT4ycZQVjvMS01FNWPb7wgrKiR2a1bNzd6ary+gTOZGpEEYQEAALJXstp66nrLGxw3XhBW1J7W4GbqIqOgtnWm70uCsNgVBGIBoBRQf0Tq2+v777932Ynqo+vyyy9P92blBN21T3QwtWOPPTbrArEAACC3FdXPa65vD/6gdnCiT4YpWKmALIBoBGIBoBRQx/kawEIDAqjje3Wc7412j2BpZONEqTGpTGUAAIBMp0G+lN2orgBE/1Y3TOny3XffucfdNTiYHHPMMZFtQ+mggczatWuX8PydOnUKdHuATEQfsQAAAAAAAAAQMDJiAQAAAAAAACBgBGIBAAAAAAAAIGDZN4RdKaCBdpYtW2ZVq1ZlND0AAIASUg9aGzZssPr161vZsuQPJBttVgAAgNS2WQnEBkAN2kaNGqV7MwAAALLCjz/+aA0bNkz3ZmQd2qwAAACpbbMSiA2Asgq8DyDoUc+VybBq1SqrU6dOyjJFUl1mLtQxHWVSx+wokzpSZqaUl44yqWPml7l+/XoXKPTaVkgu2qyZXV6ulEkds6NM6kiZmVJeOsqkjrnVZiUQGwDv0S41aFPRqN2yZYsrJ5UHcyrLzIU6pqNM6pgdZVJHysyU8tJRJnXMnjJ5bD4YtFkzu7xcKZM6ZkeZ1JEyM6W8dJRJHXOrzUpnWwAAAAAAAAAQMAKxAAAAAAAAABAwArEAAAAAAAAAEDACsQAAAAAAAAAQMAKxAAAAAAAAABAwArEAAAAAAAAAEDACsQAAAAAAAAAQMAKxAAAAAAAAABAwArEAAAAAAAAAEDACsQAAAAAAAAAQMAKxAAAAAAAAABAwArEAAAAAAAAAELDyQReQibZv324bNmxwPxUqVLCqVata5cqVrWxZ4tYAAGSCnTvNpk83W7XKrE4dsw4dzMqVS/dWAchWO/N22vQl023VilVWZ3Md69Ckg5Ury0kHAABkSCD2lVdesRkzZljTpk1t4cKF1qpVK+vdu3ehy8yaNcteeOEFa9mypS1btsxq1KhhgwYNiprnxRdftDlz5tjatWvt22+/te7du9sll1wSFWRV0HXHjh2R1126dLFHHnnE9ttvvwBqCgAAkmnKFLOBA82WLTNr3drs00/N6tc3GzfO7Mwz0711ALLNlG+n2MCpA23Z+mXWulpr+3T9p1a/Wn0b122cnXkAJx0AAFDKA7EzZ8600aNHu8BqmTJl3DQFTBUsPfvss+Mus2jRIuvfv78Lsu6+++5u2sCBA+22226zq6++OhKErV69ut14443utYK1hx56qH399df24IMPRtalwOyZZ55pmzdvtgMPPNAaN26cgloDAIBkBGF79jQLhcz8D7L8/HN4+uTJBGMBJDcI2/P5nhaykJX19fr28/qf3fTJvSYTjAUAABGl8ln7ESNGWK9evSJBWOnbt6+NHDmywGVuueUW69atWyQI6y0zZswYF1CVBx54wP146tev74K3Dz/8sC1fvjwyXZm0HTt2dOsjCAsk7zHh998PPyqs33oNAMmk84oyYRWEjeVN04MynH8AJKs7AmXCKggby5s2aOogNx8AAECpDMQqaDp9+vR83QDsu+++Nn/+fJf5Gs/UqVPjLrNu3TqbPXt2JMDqD7h684RCIVu6dGnS6wLgjwy1ffYxO/54szvvDP/Wa00HgGSZMcPsp58Kfl/B2B9/DM8HALtqxtIZ9tP6gk86Csb+uP5HNx8AAECp7JpAgVb1z1qlSpWo6XvssYf7PW/evHwB102bNrluBgpbRv28TtbziHHKK1++vDVr1iwy7eeff7Z77rnHatasad99950L4A4dOrTAbd66dav78axfv979zsvLcz9B0voVSA66nHSWmQt1TEeZqSrv5ZfNevXyHhPOszJlQu637olo+vPPm51+ejBl8zlmR5m5UMd0lJmNddR5xd8dgf+cEztfUNXmc0x+WUBptXzD8qTOBwAAsl+pC8SuWbPG/VZw1M977b2/q8uIgqfPPvus9evXzwVdPVu2bHH9y3oDeLVv394qVqzopsWj7g9GjRqVb/qqVavcuoK+QFHWry6I/AOOZVOZuVDHdJSZivJ0/fzII2aHHx5+XaZMnjVtui6cIxIKl/noo2ZHHx0dPEle+XyO2VBmLtQxHWVmYx1r1w4PzuWJd87x5lu50gLB55hcGzZsCHT9wK6oV7VeUucDAADZr9QFYr1+YdW49/Nex04v6TJev7LqmuDee++Nmv7kk09GvVZfseqf9uKLL7YKFSrkW8/w4cNt8ODBURmxjRo1sjp16li1atUsKOrjbsaMPPv11zJWu3Yda9++rJUrZym5ANM+V/1SdZGZyvJypcxUlKe+YN9884/X4ay0MvbZZ3UsL++PMufNM+vYMfnl8zlmR5mpLo9za+aW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bQsAQK6izVo6y0tHmZlcx6pJbrOW+HkvVeLJJ58s8H09vlXS/lFHjhxpkydPdjvMo0fFbrrpJlfu3LlzrVWrVq4vL8+wYcPca/+gDlpG05UxG0sZDfGyGs477zw76aSToub75z//aRdffLEdeuihJaoPAADJ5D2hoZuNQCarUqWKaySXhqeOgmzbAgCQi2izIltUSWKbtcQZsbfccovrL/Xxxx+3E044werXr+82asmSJfbqq6/aTz/95PpULQllno4YMcL1w9WiRQtbtGiR9ejRw/r06ePe12i2Kkd9k3latmxpEyZMcIHXQw45xKUNN2nSxIYOHRq17htuuMHdkfnkk0/su+++c2U0aNDABg0a5N4/8sgjXUBXQV/VZ968ea5+V1xxRUl3FQAAgUjV3WQgF47hINu2AADkstL09x4oiVIxWJeClx988IFdcMEFbhRZbZQaq3LMMcfYjBkzrFGjRiXesO7du7ufeNq0aRO3o2d1aaCfwgwfPtwqVKjgshq0vV6qst9xxx3nfgAAAJAbgm7bAgAAACUOxMo+++xjb731lusv64svvnD9fxx88MF24IEHWmmlfh08amDrR4FZAAAA5LZMbNsCAAAgRwKxnv3339/9AAAAAJmOti0AAACCUOLBugAAAJCYFStWuFFWv/zyS/f66KOPtnvvvTfdmwUAAABE0GbNkIxYAACQ+XbuNJsxw2z5crN69czatzcrVy7dW5UdNm/ebOvXr7dt27a51/q3fgAAAFA8tFmDky1t1lDIbMMGMw0JVb68WdWq6p7USgUCsQAAwKZMMRs40Oynn/6Y1rCh2bhxZmeemc4ty56+R//973/bSy+9ZE899ZT179/fBmqHAwAAIGG0WYOVDW3WNWvMfvzRTLHkKlXMNm0y09BQGnO1Ro10bx1dEwAAkPPUoO3ZM7pBKz//HJ6u91MlLy/PbrjhBrv00kvtnnvusbvvvtuWLl1q69ats9tvv9122203u/DCC+2xxx6zG2+80f7yl7/YypUrI8vrMarzzjvP/vGPf9jjjz9uV199tZUtW9auvfZa++mnn+zcc8+1cePG2ZNPPmn//Oc/rV+/fnbbbbf9r74/28iRI91Anpdddpl9++23Nm3aNOvatavVqlXL7r//ftu6dav7XbNmTTdd7/vp9cknn2y1a9fON/9dd91l7dq1swEDBrht1gCiqqu2qzCTJ092233HHXfY2LFj7YMPPnDTx48fb/vtt58dd9xx9uijj7of1UXbf8kll9g333xj7777rttObc8DDzxgv//+u6t3jRo17MQTT4zafr1//vnnu32ucr766qvIex9//LFdddVV9vDDD7vPQfvX45WhOt53330ug2LRokVuOzp27BjZXgAAgF1Bm5U2a1Ft1mnTPrbLL7/Knn32YZs48XZ78slwm1VB2eeee9c6dy4FbdYQkm7dunUh7Vr9DtrOnTtDy5cvd79TJdVl5kId01EmdcyOMqljbpa5efPm0Ny5c93vksrLywtt27YttH17XqhhQz28E/+nTJlQqFGjUGjHjhIXla9M/S7IoEGDQpdeemnkdb9+/UJnnXVW5HXjxo1D7777buT1iSeeGDr33HPdv7du3RqqW7du6JFHHomUN2/ePPc32StzwIABoR2+ymgfVq1aNfTWW29FltH8ixcvjswzfvz4UMeOHaO2s0OHDm56vDqq/Pbt2xc6/5QpU1w5RXnppZdCRxxxRGjLli3u9WOPPRaqX79+5P0+ffqErrvuuqh9Grv9jz/+eNT2r1q1KlSzZs2o7Rk7dmzotNNOixx/I0eODB199NHu31999ZXbBn12Xh2vv/56V66/DNXR88ADD4QeeuihXT6WU9mmykW0WTO7vFwpkzpmR5nUMTfLpM1KmzWVbdYvv/wqdNBBR4Rmz94W+vjjUOjjj/NCl156fej886/73+tQaNSo9LdZ6ZoAAIAcpv61Cru5rSaSHu3RfJ06BbsturuvrAD/Xe3TTjvNZRR4dMfas2nTJpd5oLv5ogwE3bWvX79+vvm938os8Fu4cKFVq1bNmjZtmm/9hSlsPr2njIaC5l++fLnLME3E8OHDXTaCMhGkTZs2duWVVya0HQXNo8yB5s2bR14rA0JZFZMmTYpsd+fOnd2jaaLMjJNOOinqc1BWR6tWrVwWyN577+3K8MrR+g8++GA7/vjjE6ojgJL3kTh9utmqVWZ16ph16EAfiQCyF21W2qxbi2izDht2rR199ElWvvwfn8Opp/7FTjutlfXseanVrr237dxZxvLy0ttmJRALAEAO0yAHyZxvV8yePdt27txp+++/f2TamXE6+5o6darNnz/f3nzzTdcYO+uss9z0OnXquADh66+/HmnoFkTzqDw9gvT+++9HGnD+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si4AAAAAAAAAcBk9YgEAAAAAAADAZTTEAgAAAAAAAIDLaIgFAAAAAAAAAJeluh0AQNNUXl4uxcXFsmPHDmnRooVkZWVJZmameDweSRabN2825dShsIOHw27VqpW0bds2rt8NaM4qKytN/aM/6enpgfrH602e68Pbtm2TnTt3htU/OllAbm5uXL8bACSK5pCvKnJWoGkiZyVndQOTdSW41157TebOnSt9+vSR5cuXy6BBg2TcuHGuxty4caNMmTJFRo8e7XqsiooKue+++0zFt27dOlNGO7ZbFe3LL78shYWFJvZnn30mI0eOlPPPP19i5ccff5SrrrpKXnjhBddi6Lrs3r174LEeSH7zm9/IAw884Fplq1WNfv7KlSula9eu4vP55Pjjj5e99trLlXi6ndxyyy0Rn7v11lvl0ksvjXrM//73v7J06VJzcrBlyxazjv/0pz+Jm5566imZN2+e9OvXz+wfv/rVr+S4446Lyf6ucV988UUZMGCArF+/3pwoTJw40dWYqqioSG644QbJycmRK664otHxaoup2+3jjz8ua9eulU2bNskPP/wgf/7zn+WMM85wJZ7697//bdannpB9/fXX0rdvX7n88sslNTU1JnX3L7/8ImPHjpV33nnHtXhpaWlSVVUVeDxq1Ch55JFHpFevXq7FVM8//7zZbnv06GH200MOOcT8RDue1nU1HTcuuOACuffee6MeU3300Ucyf/58SUlJMfuJNlpMmjSp0ScLtcV844035KWXXpK9995bfvrpJ9l///1l/PjxjYqH5BOPfFWRsyZ2zhqPfFWRs7qDnJWcNRoxg5GzNj5eMuWsGxMoX6VHbAL7+OOP5cYbbzQ7qH1VeMyYMWbj1Qop2rRy1QpBD1z/+Mc/5IgjjhC3afJx1llnSbdu3czjt99+2+xYzzzzTKMPKpFcffXV8t1335nEVq94aXLbuXNnk+BG42Bdl+rqavnjH/9oYrtJDyY333yzDBkyxCSX++23n3Ts2NHVmJoI9O7d2/xN1amnnmq23VmzZrkSr7S01FS2wetST1oefvhhmTBhQtTjvfnmmybpCN5O9MD26KOPupbY3nPPPfKvf/3LrEc9iGn59KCSnZ0thx12mKv7+4oVK+Tss8+WhQsXmgOn0vWq25UeAN2IuXr1annooYekZcuW8sQTT0TlZLOumPo3PPzww+Xc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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Создание двух графиков рядом\n", + "fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(14, 6))\n", + "\n", + "# ============= Левый график: случайные данные =============\n", + "ax1.set_title(\"Поиск в случайных данных\")\n", + "ax1.set_ylabel('Время, с')\n", + "ax1.set_xlabel('Повторения')\n", + "ax1.set_xticks(iterations)\n", + "# ax1.set_xticklabels(range(1, 6))\n", + "\n", + "ax1.scatter(iterations, ll_random_search, label='связный список', color=ll_col)\n", + "ax1.axhline(y=ll_random_search_average, color=ll_col, linewidth=1, linestyle='--', alpha=0.7)\n", + "\n", + "ax1.scatter(iterations, ht_random_search, label='хеш таблица', color=ht_col)\n", + "ax1.axhline(y=ht_random_search_average, color=ht_col, linewidth=1, linestyle='--', alpha=0.7)\n", + "\n", + "ax1.scatter(iterations, bst_random_search, label='дерево', color=bst_col)\n", + "ax1.axhline(y=bst_random_search_average, color=bst_col, linewidth=1, linestyle='--', alpha=0.7)\n", + "\n", + "ax1.legend()\n", + "ax1.grid(True, alpha=0.3)\n", + "\n", + "# ============= Правый график: отсортированные данные =============\n", + "ax2.set_title(\"Поиск в отсортированных данных\")\n", + "ax2.set_ylabel('Время, с')\n", + "ax2.set_xlabel('Повторения')\n", + "ax2.set_xticks(iterations)\n", + "# ax2.set_xticklabels(range(1, 6))\n", + "\n", + "ax2.scatter(iterations, ll_sorted_search, label='связный список', color=ll_col)\n", + "ax2.axhline(y=ll_sorted_search_average, color=ll_col, linewidth=1, linestyle='--', alpha=0.7)\n", + "\n", + "ax2.scatter(iterations, ht_sorted_search, label='хеш таблица', color=ht_col)\n", + "ax2.axhline(y=ht_sorted_search_average, color=ht_col, linewidth=1, linestyle='--', alpha=0.7)\n", + "\n", + "ax2.scatter(iterations, bst_sorted_search, label='дерево', color=bst_col)\n", + "ax2.axhline(y=bst_sorted_search_average, color=bst_col, linewidth=1, linestyle='--', alpha=0.7)\n", + "\n", + "ax2.legend()\n", + "ax2.grid(True, alpha=0.3)\n", + "\n", + "# Общий заголовок\n", + "plt.suptitle(f'Сравнение времени поиска в структурах данных (N = {countRandomSearch} + {countNotExitstSearch})', fontsize=14)\n", + "\n", + "plt.tight_layout()\n", + "plt.savefig('../img/search.pdf', \n", + " format='pdf',\n", + " dpi=300,\n", + " bbox_inches='tight', # обрезает лишние поля\n", + " pad_inches=0.1)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "0fd42f30", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABWIAAAJKCAYAAACmkjw+AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjcsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvTLEjVAAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3QeUFFXaxvGXIDlIVDIoyYComBERVMS0uIiIrIJhXXUNYCAZQBcFUVfBnNOqGBDdDwMGDKCYA+qiZBEEBVGi5OnvPLetprqnJ3d1/P84c4aurqpbt9LceuuGcqFQKGQAAAAAAAAAgMCUD27VAAAAAAAAAAAhEAsAAAAAAAAAASMQCwAAAAAAAAABIxALAAAAAAAAAAEjEAsAAAAAAAAAASMQCwAAAAAAAAABIxALAAAAAAAAAAEjEAsAAAAAAAAAASMQCwAAAAAAAAABIxALAAAAAGls8+bNdsUVV7jfSJzhw4fb77//nurNAADkkHKhUCiU6o0AAGS/VatW2e23324zZ860XXbZxWrUqGGVKlWys846yw488EA7/fTTbeLEianeTAAA0s65555rF110ke2///72yy+/uKDsypUr7Y033rD27dvbF198YVWrVo3M/84779gNN9xg7733nlWrVs2OPPJIe/DBB93f31T6+OOP7YknnrC777477vdPPvmkffjhh7bbbrvZ3Llz7aijjrK+fftGzbNt2zb717/+ZVu3brW6devat99+a5dffrl17Ngxar6ff/7Zrr/+emvWrJlt377dfvrpJ7dP6tevH5lH0wYPHmzPPPOMVahQIaBcAwCwA4FYAEDg9KD4t7/9zT3s6OGxSpUqbroeovRQtHz5cveAyJ8kAACi/fe//7X//e9/dtVVV0VN/+GHH1yA9u2337Yrr7zSbrnllnzLapmjjz7aunfvbqmUl5fn8vH3v//dTjrpJHvsscfyzfPUU0+5gOiUKVMiy/Ts2dMt4w/Gnnfeeda2bVsbMmSI+6yAdJcuXdxybdq0cdO2bNlinTp1socfftgOOuggN2369Ok2aNAg++STT2ynnXaKrG/y5Mn2448/ujIKAABBo2sCAECg3n33XTvxxBNd7ZWrr746EoQVPQiptsqvv/6a0m0EACAdbdq0yUaNGuVqw8Zz5plnumClWpx89tln+b5XwFK1S1Pprbfesv79+9usWbOsYsWKcedRLVcFVv/5z39GppUvX97lWy9wFZQV1X59/PHH7YILLojM16BBAzvuuOPcfvI89NBDriawF4SVI444wv1+9NFHo9L+61//6oLAeikMAEDQCMQCAALzxx9/uIcvNZu88MILC5xvwoQJVq5cuaRuGwAA6e7ZZ5+1ww8/3GrXrl3gPPfff7/rlkC1Y9XSJN2oRq5qul533XVR3Sf4zZgxwwVC99lnn6jp6m5g6dKlrrsCef75561FixZWs2bNfPO99NJLkfxrv8Wuy5tP6/BT+UMB7XvvvbfMeQUAoCgEYgEAgVGtEz1YqVuCwqj/tngPTECm8GprAX7qbiVVXa6kMm31x4nE7CPV1FQgszDNmze3sWPH2tdff23jxo2zTKQ+bqVOnTpR0+vVq+d+f/rpp5H5Yufx5tu4caPrwqGo+bx1+anrhqeffjpBuQEAoGAEYgEAgXn11Vfd70MOOaTIeW+++Wb3e9q0aa4poR6WNO3GG2903RpceumlrouDL7/8Mt/D7H333We33Xab62+2V69ekXQ9quWiAcFU62XYsGH273//2/0+4YQTXDNHWbdunUuvSZMmrjmj0lQQ+YUXXrBjjjkmUmPm9ddfj6z3tddes7PPPttuuukmV9NH61QzUpk0aZJbv5ZT33Zqmjlnzhw3QrOaW+65555umxUo0W99VpPNkSNH2nfffee6dBg4cKBbXuvx1+DRYCca5Ez7ZsyYMa7p5urVqwvdv2vXrnV52nXXXd3gJtpm9SeovvfOOeecyKjRJd3/3vZffPHFduutt7rfjzzySOT7u+66y/XTp1pQ77//fr7tUl5U00vHxz94y7Jly1wt6muuucYdL+VX+0W+//57u/baa93AKuoPUN+LtkOfNV3fz549295880133LQftf06LhroRvmvVauWO97K55o1awrcdx999JEbTE7rOPTQQyP5WL9+vXXr1s0qV67sBorxAis6FupyQ+vWvtN+UZ+GWr5Hjx4usOLR/laNcB0L5XHEiBGub8NYzz33nDsPe/fu7danbW7ZsqUb9E55Xbx4sZtPy+ocuuyyy9x+0fF9+eWXS3yO+/fxXnvt5fatdzx1rvr3sdesWOkNGDDApaH5hw4d6tapY3vPPfcUen5+8MEHdv7557v5FRBRHnVu65g98MADVlyqOac8/OMf/7DRo0dHNdfWNbr33nu7Y6MfDRa47777usCVzjWvybSOg/Zto0aNXC09damifap7i/aZ8uoN8qPjpeUaN25s//nPfyLboSbWysupp57qjo3/fnDGGWe481LUZ6amqdWAl08NqqRm1gqsqYajvlfTaZ2z6ltT35ckbd1zdF3oXNG5qz5D1YRb3+s82bBhQ9Q+nDdvno0fP94dQ32v/anr0aNgn8537T91L/N///d/kfuh7m06X7TtxaFzs0+fPi5POua6Dlq1auW2Vftc/XaKtvGOO+5w26TpJ598srsu/bz7qLZBedb9Vvdd3X/991HtO51bqlGpgau0rVq/7lsHHHCAm1f3O61f9yf9X9P0nf7WxNL1rPuC5tH9TzU3X3nlFZcvTVOQVNsi2i7vPqBruii6nnXMDjvssCLnVZN+zae/g7p+M82SJUvcb3/3ReLVoPW+1+/YeWLn0z1Y9+eC5tP9XvdDP5076mvWu5cCABAYDdYFAEAQ9txzT1XHCn333XclWm7Lli2hnXfeObTvvvuGfv7558j0l156KVStWrXQxx9/HJn273//O9S5c+fQtm3b3Ocff/wxVL169dCMGTOi1vnwww+7bcnLy4tMu/7660ONGjUKrV+/PjLtzDPPdOvze/PNN92yCxYsiEx77rnnQl26dHHb6hk0aFDonHPOiXyeNm2aW27evHlR62vSpEno2muvjZqmz82bN4+a9tprr7nltR7P+++/H9prr71Ca9eujUy7/fbbQ0cddVSoOJS/I444Impa9+7dQ3/5y19Ktf8vvvji0JAhQyKft2/fHtp///1DTzzxRGTaQw89FDr55JND/fv3z7c9jz/+eKhFixbu+HhWrlwZatOmTeirr76KTPvyyy9DDRo0CK1atSoyrVmzZqGrr746an36rOl+Om7aj2+//XZk2saNG1262h/FofOrZcuWocsuuyxqutY5duzYuMsMHz488v+FCxfmO5bLly9354L/XD3xxBND5513Xtz1aVl/HrTtOgc9OrdPOumk0N133x2ZtmHDBpfGe++9V+JzXLQvR44cGTXttNNOy7ePlddKlSqFfvvtt6jt0Tr9x7YwOnc0/yOPPBK138qXLx+aPHlykcsvXbo01Lhx49BTTz0VdW3oXNbx1vWu9Xl0/P3X4VlnnRX5/8033xyqWLFi1L7cvHlz6OCDDw716dMnKt0zzjgj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Qfbwww+7zw899JBddtlldvnll6d60wAAyDiUFQEAyFwEYoE0pABVp06d7I033rDHHnss7jyqYXj88ccnfduAktp3332tWrVqrvmkHHTQQa5m7D777JPqTQMAICNRVgQAIDPRNQGQpmbNmuWandWoUcNmz55tu+66a9T36iPs3nvvtSZNmqRsG5G5dOtXn3HJoBo7d999t7377ru2adMml/aJJ55oF154YdK2IVP2VS5gfwJAYlBWBJCOKOslDvsyO1EjFkhTHTt2tKFDh9rvv/9uF110UdR3y5Ytc83NCipYqwbE2Wef7Qrk1113nd1www02fPhwq1ChglWqVMk1E3///fcj8+v/d955p91444126aWX2nHHHWfvvPNO3HXPmzfPbVfjxo1dn59a9+jRo+3ggw92fySOOeYYu+OOO6KWmThxovXq1ctGjBjhgm8DBgxweRD1F6rmdXvuuadbXn2ZjRkzxn2nhwdti6Z7zfDWrVvn1tevXz83vW7dui5v2i4F+tTkvXz58q4pnprEf/DBB5HtWLNmjZt25pln2jXXXGOnnnqq3Xrrre4PXHEon6rN6Q16obz/61//cus544wz7Mcff7SS2Lhxo8vTCSecYIMHD7arrrrKJkyYYEuXLo2a780333TnQJ06dezqq6926Wq5Ro0auW0599xz3TH/+uuv3f7VcdZ0/d/bz9pvxx57bGTbZ8yY4Y67jvdOO+3kzgttw3vvvWc//PCD2xYdY81/+umn21NPPRXZHvVHd99997njNGzYMLfe+++/P2qb/cdV26NjpmP7yiuv2FFHHeU+6zgVdFx33nlnt+7vvvvOPvzwQ1fzR8fUf1z1nY699ouW0bJaR6xPP/3ULeMtr3Vpee2Df/7zn26alu/SpYu7rkTnuKbtsssubt8vX768WMdU+dC51a5dO3de6Fjp59BDD42c38qvfz+pv9ybb77Zrr32Wjv55JNtyJAhbrqfroWePXu6dTRt2tSloWP72muv2fnnnx91LajvQG+f6bjqOzVd1bxaRuk0a9Ys6tjGXofaXu869FuxYkXU8trnWl7nvtL2zkn1V/j999+7Zf7v//7PKlasaFWqVHHXibYNAFB2lBWzv6y4fv1693dX+2TUqFHub/uVV15pv/32W2Qe5UnHrX///u5Yevlu37692x86ltoH+s7vP//5jytb6NxR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brvNjjrqqEit1hNPPNEN/KA+ybxlNF1B2HgUNPb67ktm81QAAAAUH6U0AACAgP3yyy/WsGFD+/rrr93nQw45xO64445UbxaSoFu3bjZy5EgXiL3vvvtcv66nnHKKDRgwwH2/YcMG19XA+vXrI8u0b9/e1XBV4FXLKJjbokUL12VCLA2Coul33nmn+6z1alkAAICSosyaITViAQBA5lOFuhkzzJYvN2vUyKxLF7MUD2SfNTZu3Oj6/PQGYNL/Y/sARfbq1auX+4nnwAMPdMHUWOrSQD9F0eBdCvT+61//cjVhVSN227ZtCdluAADSEWXW4FBmDR6BWAAAYJMnmw0aZLZ06Y5pTZuaTZhg1rt3Krcse/oe/b//+z978cUX7cknn7Szzz7bBmmHA2Wk7g0qVaoU+axgrP8zAADZhDJrsCizBo+uCQAAyHEq0PbpE12glZ9+Ck/X98mi2nzXXXedXXTRRXb77be7fjN//PFHN2L8zTffbDvttJP94x//sIcfftjVAFTfmitWrIgsr2ZU55xzjmum/cgjj9iwYcNcYOrqq6+2pUuX2plnnmkTJkyw//znP3bvvffaWWedZePGjfszvz+5JuAKbGnE+e+++86mTZvmBk6qV6+e3X333bZ582b3u27dum66vvfT5+OPP97q16+fb/5///vfrobjpZde6ra5cuXKLq/arsJMmjTJbfctt9xi48ePt/fff99N12BNu+22m+tX9KGHHnI/you2/5///Kf973//s3feecdtp7bnnnvusT/++MPlu06dOnbsscdGbb++P/fcc90+VzrffPNN5LtPP/3U9XP6wAMPuOPgNYMXLw3l8a677nI1KBYuXOi2o2vXrpHtBQAAKAvKrJRZs6LMGkLCrVmzJqRdq99B2759e2j58uXud7IkO81cyGMq0iSP2ZEmeczNNDdu3BiaPXu2+11aeXl5oS1btoS2bs0LNW0aCqlEEO+nXLlQqFmzUGjbtlInlS9N/S7I4MGDQxdddFHk81lnnRU67bTTIp+bN28eeueddyKfjz322NCZZ57p/r958+ZQw4YNQw8++GAkvTlz5ri/yV6al156aWibLzPahzVr1gy9+eabkWU0/6JFiyLzPProo6GuXbtGbecRRxzhpsfLo9Lv0qVLofNPnjzZpVOUF198MXTAAQeENm3a5D4//PDDocaNG0e+HzBgQOiaa66J2qex2//II49Ebf/KlStDdevWjdqe8ePHh0466aTI+Tdq1KjQIYcc4v7/zTffuG3QsfPyeO2117p0/Wkoj5577rkndP/995f5XE5mmSoXUWbN7PRyJU3ymB1pksfcTJMyK2VWD2XWHeiaAACAHKb+tQp7ua0i0pIl4fmOPDLYbdHbfb219r/VPumkk1yNAo/eWHs0yJFqHuhtvqgGgt7aN27cON/83m/VLPBbsGCB1apVy1q3bp1v/YUpbD59FztqvX/+5cuXu7f1xTFixAhXG0E1Ebz+RK+44opibUdB86jmQNu2bSOfVQNCtSomTpwY2W4NMKWmaaKaGccdd1zUcVCtjo4dO7paILvuuqtLw0tH6997773t6KOPLlYeAQAAikKZlTLr5iwpsxKIBQAgh2mQg0TOVxYffvihbd++3XbffffItN5xOvuaOnWqzZ0719544w1XGDvttNPc9AYNGrjC1muvvRYp6BZE8yg9NUF67733IgU4f9MqNY2SgpopedNXrVrlfl9wwQVWrVq1IpuxqdmXmlONHTu20Hl//fVX+/7776P2R4cOHdxPaanpW9++faPypIcIPRD401HzLP14zbhUqPVr2rSpbd261e3Dv/71r26ajt3111/vmqNpnwIAACQKZVbKrN9kSZk1sECs+o746KOPrEqVKnbwwQe7Ew0AAKQXjTSbyPnKQgU+/++C9OzZ04488kjX75YKkrNnz3aFKXnqqafshRdesBNPPNGaNGni+qOKR4U0/cyaNcsOO+wwV1Deb7/9It/36dMnqqA7f/78fOtQ31nqr0v0xl/bNHPmzEK3XbUnNOhBhWIM7Vvc/VFc2k/btm2zffbZp0TpaJnY77zP+s6/j7T/VfYbMGCAff755+7/2YKyLQAAqUOZlTJrXpaUWQMZrEudDrdp08Z1kNuqVSubMmWKi/6rWjMAAEgfXbqER5otqLWQpjdrFp4vaAcddJBrZqQ36n7+Zl+x1AxMAyDo7bioqZEKUt9++62NHDkyX+2EL7/8Muqzmio1a9bMHnvssTJtuwqqn332mRtsoCAq8GpwAP9b/MI0bNjQFcpj94c3EERJqCnXE088Yeedd16+79Qkq0aNGvnSUV5UeD300ENdmn4//PCDK5gfcsghkWnt2rWz5s2b25AhQ9xAEddcc41lC8q2AACkFmVW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X281atQo1XYi/VWoYDZhglmfPvmDsd7n8ePD8wFAtqLMipwMxN5///327LPP2h133OFqDahwKKtWrbLHHnvMbrnlFttzzz3thBNOSOT2AgCAAEz+brINmjrIlq7dMQpM01pNbULPCdZ7j94p3TYgGYIq237wwQc2ZswYF1gt92ekrFevXq7/2X79+sVdZuHChW7wsFmzZlmVKlXctEGDBtm4ceNs2LBh7vPUqVNt6NCh9txzz7lgrQYYUy1eBWZfeumlMu4NpLPevc0mTdI5YbZs2Y7pqimrIKy+B4BsRZkVOds1wcSJE10zrYsvvjhSUJV69eq52gQff/yx3XfffYnaTgAAEGCBts9zfaIKtPLT2p/cdH0PZLugyrYjR460vn37RoKwMnDgQDcwWEFuvPFG69mzZyQI6y2jWrkbN250n9euXWtLly61NWvWuM9avwKyb7/9dom3EZlHwdYffjB76y2zK68M/160iCAsgOxGmRU5XSN27733tkaF9ALfokULa9euXWlXDwAAktS0S7UKQhbK952mlbNyNnjqYOvVrlfSmnxt27bN7rnnHnvmmWdcrUDV9FMwq0OHDq4GYLdu3Vzz68qVK1v9+vVtzpw5dsMNN9hOO+1kZ511lr3++uuu1qCWU63DL774wv7617+6YJhn3rx5bkAmDcy0YsUKa9OmjZ1xxhn23Xff2YQJE1ztSH2v5ukKzikYpzS0PtE01Z5s27atrV692m2LaiwicwVRtlXQdPr06XbppZdGTW/VqpXNnTvX1Xzdbbfd8i3n1XaNXUZB1w8//NC6d+/uzmf/OS2qDXvooYeWaBuRudT9QNeuZitWmDVsaPbn7QkAshJlVsqsluuBWJ04RalUqVLUZxU4dfABAEB6UP9asbUKYgu2S9YucfMd2fLIpGxTxYoVXeBK/V3+/e9/d9Oefvpp11z8mGOOscsuu8wFxbz+MlVLUYXYu+66y813yCGHuELrAw884ArImzZtsr322ssVSPv06WPr16+3E0880Q3K1LhxY7eOww47zAXZDjzwQLcuFWpVC1IGDBhgDRo0cP17auCmb7/91v75z3+6puZeeUiFbBW89RuZKYiyrQKtOgerV68eNd3rw1UPZLGB2A0bNrg+YQtbRoHYWK+99pr9/PPP7hooiPqS1Y9HtWolLy/P/QRJ69eDZtDppDLNXMhj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VRg13x44cKALTin4FdsvlGoMqmAaa88993Q1DfVTGNVK9Gom+sWrmYDMlKiybbdu3VwTQZ2zGsV44cKFdsopp9iAAQPc9xqEQyMrq485T/v27d2DmAKvGnBj+fLlbjA5/4OTrpMHH3zQDcqhc1wPZHpwU1qpGAgDAIBkocxKmTUnArHqB2vw4MFu5GCNjqcq0l6/VIrMq4CqQQt0MO+++27XAXFRJwQAAICf+tiK12eVAksHHnigG4CgKKqNQOES6VS27dWrl/uJR+e1miLGUpcGhfVBq/7dLrjgglJtDwAAKBvKrAg0EKvCoQqCeoMvqhmg6P7KlStdcytF71WAVU0BRfBff/1116+FOhbW6K0AAABFUb9ZGtyoqFoDGkFWI9jH66dL5ZMvv/zS1TJUQfi0004LcIuRqSjbAgCA0qLMisADsTfccIM7MV544QUX1Vdh9amnnrIbb7zRdUB88skn28033xxpBqV+L84//3xXVZvCKgAAKA7V8POaaxekX79+BX6nZmEagEA/ohoGauYFxKJsCwAASosyKwIPxL799tv2/vvvW7169dzn2rVr27Bhw2y//fZzo8B98803Uf1YqNCqgqr6wQIAAADSCWVbAAAApEL54sykmgFeQdVPAwIcccQR+ToTFlW/btu2bWK2EgAA5EOfUsh0qTqHKdsCAJA8lFmR6UIJPIeLFYgtbOTV5s2bF/hdzZo1S7dVAACgyL/Lf/zxR6o3BSgT9YumoGdhZc0gULYFACB4lFmRLTYksMxasayR33g1BhJhypQpNmPGDGvdurUtWLDAOnbsaP379y90mZkzZ9rzzz9v7du3t2XLllmdOnXcaLh+3333nd13331unt9//911knzNNde4gRj8vvjiC3vwwQdt9913dzu6cePGduqppwaSVwAAStov1c4772wrVqxwn6tVq1biv8deX1T6+xfU3/JUp0ke0zNNb/m1a9e6H53LOqeTKRVlWwCIZ/t2s+nTzVauNGvQwOyII/R3PtVbBSQGZdZ0TU+BxR1pVq9ezoJONhOPYyigMmvF4o4IV5DCMlPYcoX54IMPbMyYMS6w6q2/V69eVr58+QI7PNaot2effbbNmjUrMirdoEGDbNy4ca7PL2+E3OOPP94+/fRTq1+/vpt2++232yWXXGL33ntvZF1vvfWWXX/99fbKK69YrVq1bNKk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+eab8s9//lP2228/+f777+UnP/mJnHvuuXsVD4knFuVVRZk1vsussSivKsqszqDMSpk1EjEDUWbd+3iJVGbdFkflVVrExrGPPvpIZsyYYQ5Q667w+PHjzc6rGVKkaeaqGYKeuJ555hk55phjxGla+DjvvPOkV69e5v27775rDqznn39+r08q4dx0002ydOlSU7DVO15auO3evbsp4EbiZN2c+vp6Of/8801sJ+nJ5M4775SRI0eawuUBBxwgXbt2dTSmFgQGDBhgtqk644wzzL47Z84cR+JVVlaazDZwXepFy+OPPy4TJ06MeLy33nrLFDoC9xM9sT355JOOFWz//Oc/y9///nezHvUkpunTk0pubq4cccQRjh7va9eulQsuuECWLFliTpxK16vuV3oCdCLmhg0b5LHHHpOMjAyZPXt2RC42m4up2/Doo4+Wiy66yLxftmyZHHTQQea3aEEz0vEeffRRee6550zBVi8yq6qqpG/fvqag+cADDziSxmC6XlevXt2qWC2NpzFOP/10c5xqgahPnz6tjtfSmLfddpu5ONF9SGlhT88ln332WcTjaeWBVkzovhrowQcfNBdkrdFcTP1cL6qvvPJKW740bdo0k3YnYr766qsmz9Pzprbasi5QNE8466yzWhUTiSfa5VVFmTUxyqyxKK8qyqyRR5mVMmskYgajzLr38RKhzPpVPJZXtUUs4tPYsWO99913n23aP//5T+/gwYMdj627zuzZsx2NUVVV5e3UqZP3jjvusE0/5JBDvEOGDHEk5sSJE719+vTxlpeX+6d17drVe+qpp3qj4aGHHvJedNFF3tGjRzsaZ926dY5vv0B/+9vfzH7p8Xj805588knv3LlzHYt59913h0y79dZbvStXrnQk3llnneXdsmWLbVppaan3tNNOcyReWVmZNzMz0ztz5kzb9Kuuusp7/PHHO368X3jhhd4rrrjCNm3x4sXevLw8765duxyJGahv377e6dOn73Wc5mLqfnv55ZeHbOucnBxvTU1NxOPde++93i5dunjXr1/vn3booYd6hw8fvlexmooZ6MUXXzT5oK5fJ+NFets1F3PBggXeDh06eCsqKvzTXnnlFe8TTzzhSLxw+Y/G+t///rfX8RqLOWXKFO/HH38cMu8xxwv0NYcAABVWSURBVBzjSEzNz3U/ueSSS0LOY06doxGf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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Создание двух графиков рядом\n", + "fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(14, 6))\n", + "\n", + "# ============= Левый график: случайные данные =============\n", + "ax1.set_title(\"Удаление в случайных данных\")\n", + "ax1.set_ylabel('Время, с')\n", + "ax1.set_xlabel('Повторения')\n", + "ax1.set_xticks(iterations)\n", + "# ax1.set_xticklabels(range(1, 6))\n", + "\n", + "ax1.scatter(iterations, ll_random_delete, label='связный список', color=ll_col)\n", + "ax1.axhline(y=ll_random_delete_average, color=ll_col, linewidth=1, linestyle='--', alpha=0.7)\n", + "\n", + "ax1.scatter(iterations, ht_random_delete, label='хеш таблица', color=ht_col)\n", + "ax1.axhline(y=ht_random_delete_average, color=ht_col, linewidth=1, linestyle='--', alpha=0.7)\n", + "\n", + "ax1.scatter(iterations, bst_random_delete, label='дерево', color=bst_col)\n", + "ax1.axhline(y=bst_random_delete_average, color=bst_col, linewidth=1, linestyle='--', alpha=0.7)\n", + "\n", + "ax1.legend()\n", + "ax1.grid(True, alpha=0.3)\n", + "\n", + "# ============= Правый график: отсортированные данные =============\n", + "ax2.set_title(\"Удаление в отсортированных данных\")\n", + "ax2.set_ylabel('Время, с')\n", + "ax2.set_xlabel('Повторения')\n", + "ax2.set_xticks(iterations)\n", + "# ax2.set_xticklabels(range(1, 6))\n", + "\n", + "ax2.scatter(iterations, ll_sorted_delete, label='связный список', color=ll_col)\n", + "ax2.axhline(y=ll_sorted_delete_average, color=ll_col, linewidth=1, linestyle='--', alpha=0.7)\n", + "\n", + "ax2.scatter(iterations, ht_sorted_delete, label='хеш таблица', color=ht_col)\n", + "ax2.axhline(y=ht_sorted_delete_average, color=ht_col, linewidth=1, linestyle='--', alpha=0.7)\n", + "\n", + "ax2.scatter(iterations, bst_sorted_delete, label='дерево', color=bst_col)\n", + "ax2.axhline(y=bst_sorted_delete_average, color=bst_col, linewidth=1, linestyle='--', alpha=0.7)\n", + "\n", + "ax2.legend()\n", + "ax2.grid(True, alpha=0.3)\n", + "\n", + "# Общий заголовок\n", + "plt.suptitle(f'Сравнение времени удаления в структурах данных (N = {countDeletes})', fontsize=14)\n", + "\n", + "plt.tight_layout()\n", + "plt.savefig('../img/delete.pdf', \n", + " format='pdf',\n", + " dpi=300,\n", + " bbox_inches='tight', \n", + " pad_inches=0.1)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9eca6493", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.7" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/stepushovgs/data-structures/docs/Отчёт.md b/stepushovgs/data-structures/docs/Отчёт.md new file mode 100644 index 0000000..b5c5c67 --- /dev/null +++ b/stepushovgs/data-structures/docs/Отчёт.md @@ -0,0 +1,122 @@ +## Практические графики +### Информация о тестировании +- Общее число записей: 20000 +- Каждый замер повторялся: 20 раз +- Количество существующих записей для случайного поиска: 1000 +- Количество несуществующих записей для поиска: 500 +- Количество элементов для удаления: 1000 + +![[insert.pdf]] +**Тестирование вставки (рис. 1)** + +![[search.pdf]] +**Тестирование поиска (рис. 2)** + +![[delete.pdf]] +**Тестирование удаления (рис. 3)** +## Анализ результатов + +### Как порядок входных данных влияет на скорость вставки в BST (деградация до O(n) на отсортированных данных)? + +По определению, при вставке отсортированных данных, структура бинарного дерева поиска вырождается в связный список. +Для визуализации этого в тесте выводятся высота и количество элементов в дереве: +Для случайных данных вывод выглядит примерно так: +``` +Высота дерева: 28, элементов: 8634 +``` +Для сортированных данных же: +``` +Высота дерева: 8634, элементов: 8634 +``` +Заметим, что при случайных данных скорость вставки в бинарное дерево почти лишь немного уступает по скорости хеш-таблице. При сортированных данных из-за рекурсивной реализации вставки бинарное дерево проигрывает связному списку(который имеет линейную сложность вставки) + +### Почему хеш-таблица почти не чувствительна к порядку. +Хеш-таблица не чувствительна к порядку данных, так как использует для распределения элементов хеш значения данных (сложность операции одинакова для любых однотипных данных) и после производит вставку в связный список(в моей реализации проходит по списку и вставляет данные в конец). Поэтому хеш-таблица ни на одном из этапов не сравнивает данные, следовательно их порядок не влияет на скорость. + +### Почему связный список всегда медленен при поиске. +Операция поиска в связном списке имеет линейную сложность $O(n)$ не зависимо от порядка данных, что можно видеть на графике (см. рис. 2). Для бинарного дерева поиска эта сложность в лучшем случае $O(\log(N))$, а в худшем $O(N)$. Для хеш-таблицы сложность вставки $O(1)$, с хорошей хеш-функцией и низким заполнением. + +### Как удаление работает в каждой структуре. +#### Связный список +Находим элемент перед удаляем элементом, и заменяем его поле `next` на `next.next`, то есть теперь он указывает на элемент, который идёт после удаляемого элемента: +``` Go +current := ll.head + +for current.next != nil { + if current.next.data.Name == targetName { + current.next = current.next.next + return true + } + current = current.next +} +``` + +#### Бинарное дерево поиска +После того, как мы нашли узел, который необходимо удалить, у нас возможны три случая. + +Случай 1: У удаляемого узла нет правого ребенка. +В этом случае мы просто перемещаем левого ребенка (3) на место удаляемого узла(5). В результате дерево будет выглядеть так: +``` +Удаляем элемент со значением 5 +ДО УДАЛЕНИЯ: ПОСЛЕ УДАЛЕНИЯ: + + [8] [8] + / \ / \ + [5] [10] [3] [10] + / / \ + [3] [1] [4] + / \ +[1] [4] +``` + + +Случай 2: У удаляемого узла есть только правый ребенок, у которого, в свою очередь нет левого ребенка. +В этом случае нам надо переместить правого ребенка(8) удаляемого узла (5) на его место. +``` +Удаляем элемент со значением 5 +До удаления: После удаления: + + [10] [10] + / \ / \ + [5] [12] [8] [12] + / \ / \ + [1] [8] [1] [9] + \ + [9] +``` + + +Случай 3: У удаляемого узла есть первый ребенок, у которого есть левый ребенок. +В этом случае место удаляемого узла занимает крайний левый ребенок правого ребенка удаляемого узла. +Давайте посмотрим, почему это так. Мы знаем о поддереве, начинающемся с удаляемого узла следующее: + +- Все значения справа от него больше или равны значению самого узла. +- Наименьшее значение правого поддерева — крайнее левое. + +Мы должны поместить на место удаляемого узел со значением, меньшим или равным любому узлу справа от него. Для этого нам необходимо найти наименьшее значение в правом поддереве. Поэтому мы берем крайний левый узел правого поддерева. + +``` +Удаляем элемент со значением 5 +До удаления: После удаления: + + [10] [10] + / \ / \ + [5] [12] [7] [12] + / \ / \ + [1] [9] [1] [9] + / / + [7] [8] + \ + [8] +``` + +#### Хеш-таблица +Находим индекс элемента в таблица, далее производим удаление элемента в связном списке, который соответствует этому индексу. + + +# Вывод +Мы реализовали и протестировали три различные структуры хранения данных: связный список, бинарное дерево поиска и хеш-таблица. Сравнили скорость операций вставки, удаления и поиска для каждой структуры. +Если не важен порядок хранения и извлечения данных, то хеш-таблица лучший выбор для быстрых вставки, удаления и поиска. +Если нужно хранить данные с возможностью быстрого отсортированного обхода, то стоит выбрать бинарное дерево поиска. +Если нужно хранить данные в порядке поступления(например очередь), то стоит выбрать связный список. + diff --git a/stepushovgs/data-structures/source/bin_search_tree_C/bst.c b/stepushovgs/data-structures/source/bin_search_tree_C/bst.c new file mode 100644 index 0000000..80e06f1 --- /dev/null +++ b/stepushovgs/data-structures/source/bin_search_tree_C/bst.c @@ -0,0 +1,208 @@ +#include +#include +#include + +#include "bst.h" +#include "queue.h" +/* +3. Двоичное дерево поиска +Узел — словарь: `{'val': '123', 'left': None, 'right': None}.` + +Функции: + +def bst_insert(root, name, phone) — рекурсивно или итеративно вставляет, возвращает новый корень (если корень меняется). + +def bst_find(root, name) — поиск. + +def bst_delete(root, name) — удаление, возвращает новый корень. + +def bst_list_all(root) — центрированный обход (рекурсивно собирает записи в отсортированном порядке). +*/ + + + +bst_node* create_bst_node(char name[NAME_LEN], char phone[PHONE_LEN]) +{ + bst_node* node = (bst_node*)malloc(sizeof(bst_node)); + + strcpy(node->name, name); + strcpy(node->phone, phone); + + node->left = NULL; + node->right = NULL; + + return node; +} + +bst_node* bst_minimum(bst_node* node) +{ + if (node->left == NULL) + return node; + return bst_minimum(node->left); +} + +bst_node* bst_maximum(bst_node* node) +{ + if (node->right == NULL) + return node; + return bst_maximum(node->right); +} + +void print_bst(bst_node node) +{ + //printf("value: %d\n", node.value); + + printf("name: %s, phone: %s\n", node.name, node.phone); +} + +void bst_inorder_traversal(bst_node* HEAD) +{ + if (HEAD != NULL) + { + bst_inorder_traversal(HEAD->left); + print_bst(*HEAD); + bst_inorder_traversal(HEAD->right); + } +} + +void bst_preorder_traversal(bst_node* HEAD) +{ + if (HEAD != NULL) + { + print_bst(*HEAD); + bst_preorder_traversal(HEAD->left); + bst_preorder_traversal(HEAD->right); + } +} + +bst_node* bst_search(bst_node* HEAD, char target_name[NAME_LEN]) +{ + /* + Node search(x : Node, k : T): + if x == null or k == x.key + return x + if k < x.key + return search(x.left, k) + else + return search(x.right, k) + */ + + if ((HEAD == NULL) || strcmp(HEAD->name, target_name) == 0) + { + return HEAD; + } + if (strcmp(target_name, HEAD->name) < 0) + { + return bst_search(HEAD->left, target_name); + } + else + { + return bst_search(HEAD->right, target_name); + } +} + +bst_node* bst_insert(bst_node* HEAD, char name[NAME_LEN], char phone[PHONE_LEN]) +{ + /* + Node insert(x : Node, z : T): // x — корень поддерева, z — вставляемый ключ + if x == null + return Node(z) // подвесим Node с key = z + else if z < x.key + x.left = insert(x.left, z) + else if z > x.key + x.right = insert(x.right, z) + return x + */ + + if (HEAD == NULL) + { + return create_bst_node(name, phone); + } + else if (strcmp(name, HEAD->name) < 0) + { + HEAD->left = bst_insert(HEAD->left, name, phone); + } + else if (strcmp(name, HEAD->name) > 0) + { + HEAD->right = bst_insert(HEAD->right, name, phone); + } + return HEAD; +} + +bst_node* bst_delete(bst_node* root, char target_name[NAME_LEN]) +{ // корень поддерева, удаляемый ключ + if (root == NULL) + return root; + + if (strcmp(target_name, root->name) < 0) + root->left = bst_delete(root->left, target_name); + else if (strcmp(target_name, root->name) > 0) + root->right = bst_delete(root->right, target_name); + else { + if (root->left != NULL && root->right != NULL) + { + strcpy(root->name, bst_minimum(root->right)->name); + strcpy(root->phone, bst_minimum(root->right)->phone); + + root->right = bst_delete(root->right, root->name); + } + else + { + bst_node* temp = root; + if (root->left != NULL) + root = root->left; + else + root = root->right; + free(temp); + } + } + return root; +} + +void delete_bst(bst_node* root) +{ + if (root == NULL) + return; + else + { + delete_bst(root->left); + delete_bst(root->right); + free(root); + } +} + +void printTree(bst_node* node, int depth) { + + if (node == NULL) return; + + printTree(node->right, depth + 1); + + for (int i = 0; i < depth; i++) + printf("\t"); + //printf("%d\n", node->value); + print_bst(*node); + + printTree(node->left, depth + 1); +} + +void treeLevelTraversal(bst_node* node) { + if (!node) return; + + Queue q; + Queue* hq = &q; + queueInit(hq); + + queuePush(hq, node); + while(!queueEmpty(hq)) + { + bst_node* hn = queuePop(hq); + //printf("%d\n", hn->value); + print_bst(*hn); + + if(hn->left) + queuePush(hq, hn->left); + if(hn->right) + queuePush(hq, hn->right); + + }; +}; diff --git a/stepushovgs/data-structures/source/bin_search_tree_C/bst.h b/stepushovgs/data-structures/source/bin_search_tree_C/bst.h new file mode 100644 index 0000000..1bf960d --- /dev/null +++ b/stepushovgs/data-structures/source/bin_search_tree_C/bst.h @@ -0,0 +1,37 @@ +#define NAME_LEN 20 +#define PHONE_LEN 20 + +typedef struct bst_node +{ + //int value; + + char name[NAME_LEN]; + char phone[PHONE_LEN]; + + struct bst_node* right; + struct bst_node* left; +}bst_node; + +bst_node* create_bst_node(char name[NAME_LEN], char phone[PHONE_LEN]); + +bst_node* bst_minimum(bst_node* node); + +bst_node* bst_maximum(bst_node* node); + +void print_bst(bst_node node); + +void bst_inorder_traversal(bst_node* HEAD); + +void bst_preorder_traversal(bst_node* HEAD); + +bst_node* bst_search(bst_node* HEAD, char target_name[NAME_LEN]); + +bst_node* bst_insert(bst_node* HEAD, char name[NAME_LEN], char phone[PHONE_LEN]); + +bst_node* bst_delete(bst_node* root, char target_name[NAME_LEN]); + +void treeLevelTraversal(bst_node* node); + +void printTree(bst_node* node, int depth); + +void delete_bst(bst_node* root); diff --git a/stepushovgs/data-structures/source/bin_search_tree_C/queue.c b/stepushovgs/data-structures/source/bin_search_tree_C/queue.c new file mode 100644 index 0000000..adea3cb --- /dev/null +++ b/stepushovgs/data-structures/source/bin_search_tree_C/queue.c @@ -0,0 +1,42 @@ +#include + +#include "queue.h" + +int queueEmpty(Queue* q) +{ + return (q->head == q->tail); +} + +int size(Queue* q) +{ + if (q->head > q->tail) + return QUEUE_MAX_LENGTH - q->head + q->tail; + else + return q->tail - q->head; +} + +void queuePush(Queue* q, void* ptr) +{ + if (size(q) != QUEUE_MAX_LENGTH) + { + q->p[q->tail] = ptr; + q->tail = (q->tail + 1) % QUEUE_MAX_LENGTH; + } +}; + +void queueInit(Queue* q) +{ + q->head = 0; + q->tail = 0; +} + +void* queuePop(Queue* q) +{ + if (queueEmpty(q)) + return NULL; + void* x = q->p[q->head]; + q->head = (q->head + 1) % QUEUE_MAX_LENGTH; + + return x; +}; + diff --git a/stepushovgs/data-structures/source/bin_search_tree_C/queue.h b/stepushovgs/data-structures/source/bin_search_tree_C/queue.h new file mode 100644 index 0000000..5bbdfce --- /dev/null +++ b/stepushovgs/data-structures/source/bin_search_tree_C/queue.h @@ -0,0 +1,17 @@ +#define QUEUE_MAX_LENGTH 100 + +typedef struct Queue { + void* p[QUEUE_MAX_LENGTH]; + unsigned int head; + unsigned int tail; +} Queue; + +int queueEmpty(Queue* q); + +void queuePush(Queue* q, void* p); + +void* queuePop(Queue* q); + +void queueInit(Queue* q); + +int size(Queue* q); diff --git a/stepushovgs/data-structures/source/go.mod b/stepushovgs/data-structures/source/go.mod new file mode 100644 index 0000000..3367dd1 --- /dev/null +++ b/stepushovgs/data-structures/source/go.mod @@ -0,0 +1,3 @@ +module source + +go 1.26.3 diff --git a/stepushovgs/data-structures/source/linked_list_c/linked_list.c b/stepushovgs/data-structures/source/linked_list_c/linked_list.c new file mode 100644 index 0000000..0eeb9e7 --- /dev/null +++ b/stepushovgs/data-structures/source/linked_list_c/linked_list.c @@ -0,0 +1,166 @@ +#include +#include +#include +#include + +#include "linked_list.h" + +/* +Связный список (LinkedListPhoneBook) + +Узел представляется словарём: `{'name': 'Имя', 'phone': '123', 'next': None}.` + +Функции: + +def ll_insert(head, name, phone) — проходит до конца (или сразу добавляет в конец) и возвращает новую голову (если вставка в начало) или изменяет список по ссылке. Удобнее возвращать новую голову, если вставка может быть в начало. + +def ll_find(head, name) — ищет узел, возвращает телефон или None. + +def ll_delete(head, name) — удаляет узел, возвращает новую голову. + +def ll_list_all(head) — собирает все записи в список и сортирует (сортировка вынесена отдельно). +*/ + + +int getListNodeLength(Node* HEAD) +{ + int len = 0; + + Node* current = HEAD; + while (current != NULL) + { + len++; + current = current->next; + } + + return len; +} + +// Добавление в конец +Node* insert(Node* head, char name[NAME_BUFF_SIZE], char phone[PHONE_BUFF_SIZE], int show) +{ + Node* newNode = (Node*)malloc(sizeof(Node)); + + strcpy_s(newNode->name_, NAME_BUFF_SIZE, name); + strcpy_s(newNode->phone_, PHONE_BUFF_SIZE, phone); + newNode->next = NULL; + + printf("Data: %s %s\n", name, phone); + printf("New Data: %s %s\n", newNode->name_, newNode->phone_); + + if (head == NULL) +{ + printf("\nNew list\n"); + head = newNode; + return newNode; + } + + Node* last = head; + int ind = 0; + while (last->next != NULL) + { + if (show == 1) + printf("%d \n", ind++); + last = last->next; + } + + last->next = newNode; + return head; +} + +char* find(Node* HEAD, char target_name[NAME_BUFF_SIZE]) +{ + Node* current = HEAD; + + while (current != NULL) + { + + if (strcmp(target_name, current->name_) == 0) + { + return current->phone_; + } + + current = current->next; + } + return NULL; +} + +// Вывод всех элементов +void printAllNodes(Node* head) +{ + Node* current = head; + int ind = 0; + + while (current != NULL) + { + printf("Ind: %d\nName: %s\nPhone: %s\n", ind++, current->name_, current->phone_); + current = current->next; + } +} + +Node* deleteNode(Node* HEAD, char target_name[NAME_BUFF_SIZE]) +{ + Node* previous = NULL; + Node* current = HEAD; + + if (current != NULL && strcmp(target_name, current->name_) == 0) + { + HEAD = current->next; + free(current); + + return HEAD; + } + + while (current != NULL && strcmp(target_name, current->name_) == 0) + { + previous = current; + current = current->next; + } + + if (current == NULL) return HEAD; + + previous->next = current->next; + free(current); + + return HEAD; +} + +Node* listAll(Node* HEAD) +{ + if (HEAD == NULL) + { + return NULL; + } + + int len = getListNodeLength(HEAD); + Node* current = HEAD; + + Node* list = (Node*)malloc(len * sizeof(Node)); + + int ind = 0; + while (current != NULL) + { + list[ind++] = *current; + current = current->next; + } + + return list; +} + +void printNode(Node node) +{ + printf("%s ", node.name_); + printf("%s\n", node.phone_); +} + +void printListNode(Node* list, int length) +{ + printf("\n\n%d\n", length); + for (int i = 0; i < length; i++) + { + printNode(list[i]); + } +} + + + diff --git a/stepushovgs/data-structures/source/linked_list_c/linked_list.h b/stepushovgs/data-structures/source/linked_list_c/linked_list.h new file mode 100644 index 0000000..7fb4422 --- /dev/null +++ b/stepushovgs/data-structures/source/linked_list_c/linked_list.h @@ -0,0 +1,29 @@ +#define NAME_BUFF_SIZE 50 +#define PHONE_BUFF_SIZE 12+1 // +1 for end symbol + +typedef struct Node +{ + char name_[NAME_BUFF_SIZE]; + char phone_[PHONE_BUFF_SIZE]; + struct Node* next; +} Node; + +typedef struct LinkedListPhoneNumbers { + Node* HEAD; +} LinkedListPhoneNumbers; + +Node* insert(Node* head, char name[NAME_BUFF_SIZE], char phone[PHONE_BUFF_SIZE], int show); +void printAllNodes(Node* head); +void printNode(Node node); + +char* find(Node* HEAD, char target_name[NAME_BUFF_SIZE]); + + +Node* deleteNode(Node* HEAD, char target_name[NAME_BUFF_SIZE]); + + +Node* listAll(Node* HEAD); + +void printListNode(Node list[], int length); + +int getListNodeLength(Node* HEAD); diff --git a/stepushovgs/data-structures/source/old_c/main.c b/stepushovgs/data-structures/source/old_c/main.c new file mode 100644 index 0000000..15b3a51 --- /dev/null +++ b/stepushovgs/data-structures/source/old_c/main.c @@ -0,0 +1,44 @@ +#include +#include +#include + +#include "linked_list/linked_list.h" + +#define NAME_BUFF_SIZE 50 +#define PHONE_BUFF_SIZE 12+1 // +1 for end symbol + +int main() +{ + Node* list = NULL; + char phone[] = "1234"; + for (int i = 0; i < 12; i++) + { + char num[3]; + sprintf_s(num, 3, "%d", i); + + char name[] = "name "; + strcat_s(name, 9, num); + printf("%d %s %s\n", i, name, phone); + list = insert(list, name, phone, 0); + } + char test_name[] = "name 20"; + char test_phone[] = "phone 343"; + + list = insert(list, test_name, test_phone, 1); + + printAllNodes(list); + + printf("\n%s\n", find(list, test_name)); + + strcpy_s(test_name, NAME_BUFF_SIZE, "name 10"); + list = deleteNode(list, test_name); + + printAllNodes(list); + + Node* listNodes = listAll(list); + printListNode(listNodes, getListNodeLength(list)); + + free(listNodes); + + return 0; +} diff --git a/stepushovgs/data-structures/source/old_c/main_tree.c b/stepushovgs/data-structures/source/old_c/main_tree.c new file mode 100644 index 0000000..9b264a7 --- /dev/null +++ b/stepushovgs/data-structures/source/old_c/main_tree.c @@ -0,0 +1,86 @@ +#include +#include + +#include "bin_search_tree/bst.h" + +#define COUNT_NUMBERS 64 + +int isInArr(int arr[], int len, int target) +{ + for (int i = 0; i < len; i++) + { + if (arr[i] == target) return 1; + } + + return 0; +} + +char get_dozen(int number) +{ + return (char)'0' + number % 10; +} +char get_units(int number) +{ + return (char)'0' + number / 10; +} + + +int main() +{ + printf("hello world!\n"); + + //bst_node* head = create_bst_node("name", "phone"); + bst_node* head = NULL; + + int arr[COUNT_NUMBERS] = {0}; + char name[NAME_LEN] = "name_xx"; + char phone[PHONE_LEN] = "phone_xx"; + int temp = 0; + for (int i = 0; i < COUNT_NUMBERS; i++) + { + do + { + temp = rand() % 100; + } + while (isInArr(arr, i - 1, temp)); + + arr[i] = temp; + + name[5] = get_dozen(temp); + name[6] = get_units(temp); + + phone[6] = get_dozen(temp); + phone[7] = get_units(temp); + + + head = bst_insert(head, name, phone); + printf("%d ", arr[i]); + } + + printf("\n\ninorder traversal: \n"); + bst_inorder_traversal(head); + + printf("\n\npreorder traversal: \n"); + bst_preorder_traversal(head); + + char tar_name[NAME_LEN] = "name_44"; + + printf("\n\nУдаляем элемент с значением %s:\n", tar_name); + + head = bst_delete(head, tar_name); + + bst_inorder_traversal(head); + + + printf("\n\nВывод дерева:\n"); + + printTree(head, 0); + + printf("\n\nОбход в ширину:\n"); + treeLevelTraversal(head); + + + + delete_bst(head); + return 0; +} diff --git a/stepushovgs/data-structures/source/old_c/swap.c b/stepushovgs/data-structures/source/old_c/swap.c new file mode 100644 index 0000000..3a6cc08 --- /dev/null +++ b/stepushovgs/data-structures/source/old_c/swap.c @@ -0,0 +1,40 @@ +#include + +int Partition_Hoa(int arr[], int l, int r) +{ + int p = arr[(l + r) / 2]; + int i = l; + int j = r; + + while (1) + { + // #print(p) + while (arr[i] <= p) i++; + while (arr[j] > p) j--; + + if (i >= j) return j; + + swap(arr[i], arr[j]); + i++; + j--; + } +} +void QuickSort(int arr[], int l, int r) +{ + if (l < r): + { + int s = Partition_Hoa(arr, l, r); + QuickSort(arr, l, s-1); + QuickSort(arr, s+1, r); + } +} + + +int main() +{ + int arr[] = {2, 56, 10, 5, 2, 6, 9, 6, 3, 923, 3, 2, 1}; + + + + return 0; +} diff --git a/stepushovgs/data-structures/source/pkg/csv_writer/csv_writer.go b/stepushovgs/data-structures/source/pkg/csv_writer/csv_writer.go new file mode 100644 index 0000000..713b668 --- /dev/null +++ b/stepushovgs/data-structures/source/pkg/csv_writer/csv_writer.go @@ -0,0 +1,81 @@ +package csvwriter + +import ( + "encoding/csv" + "fmt" + "os" + "path/filepath" +) + +type BenchmarkResult struct { + Structure string + Mode string + Operation string + Time float64 +} + +func (b *BenchmarkResult) ToString() string { + return fmt.Sprintf("%s %s %s %f", b.Structure, b.Mode, b.Operation, b.Time) +} +func (b *BenchmarkResult) ToStrings() []string { + return []string{b.Structure, b.Mode, b.Operation, fmt.Sprintf("%f", b.Time)} +} + +// Создаём пустой csv файл с заголовками +func CreateEmptyCSV(dir, name string) error { + filename := filepath.Join(dir, name) + + file, err := os.Create(filename) + + if err != nil { + return err + } + defer file.Close() + + writer := csv.NewWriter(file) + defer writer.Flush() + header := []string{"Structure", "Mode", "Operation", "Time"} + writer.Write(header) + + return writer.Error() +} + +// AppendRaw дописывает произвольные строки в CSV +func AppendRaw(results []BenchmarkResult) error { + + filename := filepath.Join("results", "benchmarks.csv") + + fileExists := true + isEmpty := true + if info, err := os.Stat(filename); err == nil { + isEmpty = info.Size() == 0 + } else if os.IsNotExist(err) { + fileExists = false + } + + file, err := os.OpenFile(filename, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644) + if err != nil { + return err + } + defer file.Close() + + writer := csv.NewWriter(file) + defer writer.Flush() + + // Если файл новый или пустой, записываем заголовки + if !fileExists || isEmpty { + header := []string{"Structure", "Mode", "Operation", "Time"} + if err := writer.Write(header); err != nil { + return fmt.Errorf("не удалось записать заголовки: %w", err) + } + } + + rows := make([][]string, len(results)) + + for i, res := range results { + rows[i] = res.ToStrings() + // fmt.Println(res.ToStrings()) + } + + return writer.WriteAll(rows) // WriteAll пишет всё сразу +} diff --git a/stepushovgs/data-structures/source/pkg/data_struct/data_structure.go b/stepushovgs/data-structures/source/pkg/data_struct/data_structure.go new file mode 100644 index 0000000..059eed7 --- /dev/null +++ b/stepushovgs/data-structures/source/pkg/data_struct/data_structure.go @@ -0,0 +1,25 @@ +package data_struct + +import "fmt" + +type MyData struct { + Name string + Phone string +} + +func NewData(name, phone string) *MyData { + return &MyData{ + Name: name, + Phone: phone, + } +} + +func (d *MyData) ToString() string { + return fmt.Sprintf("Имя: %s, Телефон: %s", d.Name, d.Phone) +} + +func PrintList(list []MyData) { + for _, el := range list { + fmt.Printf("%s\n", el.ToString()) + } +} diff --git a/stepushovgs/data-structures/source/pkg/data_struct/qsort.go b/stepushovgs/data-structures/source/pkg/data_struct/qsort.go new file mode 100644 index 0000000..0ae848a --- /dev/null +++ b/stepushovgs/data-structures/source/pkg/data_struct/qsort.go @@ -0,0 +1,44 @@ +package data_struct + +func QSort(arr []MyData, l, r int) []MyData { + result := make([]MyData, len(arr)) + copy(result, arr) + qSort(result, l, r) + return result +} + +func qSort(arr []MyData, l, r int) []MyData { + if l < r { + s := Partition_Hoa(arr, l, r) + arr = qSort(arr, l, s) + arr = qSort(arr, s+1, r) + } + return arr +} + +func Partition_Hoa(arr []MyData, l, r int) int { + p := arr[(l+r)/2].Name + i := l - 1 + j := r + 1 + + for { + for { + i++ + if arr[i].Name >= p { + break + } + } + for { + j-- + if arr[j].Name <= p { + break + } + } + + if i >= j { + return j + } + + arr[i], arr[j] = arr[j], arr[i] + } +} diff --git a/stepushovgs/data-structures/source/pkg/gen_data/data_generator.go b/stepushovgs/data-structures/source/pkg/gen_data/data_generator.go new file mode 100644 index 0000000..2ebffd5 --- /dev/null +++ b/stepushovgs/data-structures/source/pkg/gen_data/data_generator.go @@ -0,0 +1,47 @@ +package gen_data + +import ( + "fmt" + "math/rand" + ds "source/pkg/data_struct" +) + +const ( + MAX_USER_IND = 10000 + PHONE_LEN = 11 +) + +func genRandomPhone() string { + phone := "" + for i := 0; i < PHONE_LEN; i++ { + phone += fmt.Sprintf("%d", rand.Intn(10)) + } + + return phone +} + +func RecordsShuffled(count int) []ds.MyData { + data := make([]ds.MyData, count) + number := 0 + for i := 0; i < count; i++ { + number = rand.Intn(MAX_USER_IND) + data[i].Name = fmt.Sprintf("User_%05d", number) + data[i].Phone = genRandomPhone() + } + + // Перемешиваем (Fisher-Yates shuffle) + for i := len(data) - 1; i > 0; i-- { + j := rand.Intn(i + 1) + data[i], data[j] = data[j], data[i] + } + + return data +} + +func RecordsSorted(count int) []ds.MyData { + data := RecordsShuffled(count) + + data = ds.QSort(data, 0, len(data)-1) + + return data +} diff --git a/stepushovgs/data-structures/source/pkg/structures/bin_search_tree/bin_search_tree.go b/stepushovgs/data-structures/source/pkg/structures/bin_search_tree/bin_search_tree.go new file mode 100644 index 0000000..4266d3c --- /dev/null +++ b/stepushovgs/data-structures/source/pkg/structures/bin_search_tree/bin_search_tree.go @@ -0,0 +1,287 @@ +package bin_search_tree + +import ( + "fmt" + ds "source/pkg/data_struct" +) + +type BinSearchTree struct { + root *BSTree +} + +type BSTree struct { + data ds.MyData + + left *BSTree + right *BSTree +} + +func NewBinSearchTree() *BinSearchTree { + return &BinSearchTree{} +} + +func newBinSearchTree(data ds.MyData) *BSTree { + return &BSTree{ + data: data, + left: nil, + right: nil, + } +} + +func (bst *BinSearchTree) Len() int { + return bst.root.Len() +} + +func (bst *BSTree) Len() int { + if bst == nil { + return 0 + } + return 1 + bst.left.Len() + bst.right.Len() +} + +func (bst *BinSearchTree) Minimum() *BSTree { + return bst.root.Minimum() +} + +func (root *BSTree) Minimum() *BSTree { + if root == nil { + return nil + } + if root.left == nil { + return root + } + return root.left.Minimum() +} + +func (bst *BinSearchTree) Maximum() *BSTree { + return bst.root.Maximum() +} +func (root *BSTree) Maximum() *BSTree { + if root == nil { + return nil + } + if root.right == nil { + return root + } + return root.right.Maximum() +} + +func (node *BSTree) PrintNode() { + fmt.Print(node.data.ToString()) +} + +func (node *BSTree) ToString() string { + if node == nil { + return "nil" + } + return node.data.ToString() +} + +func (bst *BinSearchTree) BstInorderTraversal() { + bst.root.BstInorderTraversal() +} + +func (root *BSTree) BstInorderTraversal() { + if root != nil { + root.left.BstInorderTraversal() + root.PrintNode() + fmt.Println() + root.right.BstInorderTraversal() + } +} + +func (bst *BinSearchTree) BstPreorderTraversal() { + bst.root.BstPreorderTraversal() +} + +func (root *BSTree) BstPreorderTraversal() { + if root != nil { + root.PrintNode() + fmt.Println() + root.left.BstPreorderTraversal() + root.right.BstPreorderTraversal() + } +} + +// Search +// Возвращает номер телефона по имени +func (bst *BinSearchTree) Search(targetName string) (string, bool) { + node, ok := bst.root.search(targetName) + if ok { + return node.data.Phone, true + } + return "", false +} + +/* + Node search(x : Node, k : T): + if x == null or k == x.key + return x + if k < x.key + return search(x.left, k) + else + return search(x.right, k) +*/ +// Приватная вспомогательная функция поиска +func (node *BSTree) search(targetName string) (*BSTree, bool) { + if node == nil { + return nil, false + } + if node.data.Name == targetName { + return node, true + } + if targetName < node.data.Name { + return node.left.search(targetName) + } + return node.right.search(targetName) +} + +// func (node *BinSearchTree) Insert(data ds.MyData) *BinSearchTree { +// if node == nil { +// return NewBinSearchTree(data) +// } else if data.Name < node.data.Name { +// node.left = node.left.Insert(data) +// } else if data.Name > node.data.Name { +// node.right = node.right.Insert(data) +// } else { +// node.data.Phone = data.Phone // Заменяем существующее значение +// } +// return node +// } + +func (bst *BinSearchTree) Insert(data ds.MyData) { + bst.root = bst.root.insert(data) +} + +func (root *BSTree) insert(data ds.MyData) *BSTree { + if root == nil { + return &BSTree{ + data: data, + } + } + + if data.Name < root.data.Name { + root.left = root.left.insert(data) + } else if data.Name > root.data.Name { + root.right = root.right.insert(data) + } else { + root.data.Phone = data.Phone + } + return root +} + +func (bst *BinSearchTree) InsertAll(data []ds.MyData) { + for _, el := range data { + bst.Insert(el) + } +} + +// Delete удаляет узел по имени. +// Возвращает нового потомка для родительского узла. + +/* +Node delete(root : Node, z : T): // корень поддерева, удаляемый ключ + if root == null + return root + if z < root.key + root.left = delete(root.left, z) + else if z > root.key + root.right = delete(root.right, z) + else if root.left != null and root.right != null + root.key = minimum(root.right).key + root.right = delete(root.right, root.key) + else + if root.left != null + root = root.left + else if root.right != null + root = root.right + else + root = null + return root +*/ + +func (bst *BinSearchTree) Height() int { + if bst.root == nil { + return 0 + } + return bst.root.height() +} + +// height возвращает высоту поддерева (для BSTree) +func (node *BSTree) height() int { + if node == nil { + return 0 + } + + leftHeight := node.left.height() + rightHeight := node.right.height() + + // Высота = 1 (текущий узел) + максимум из высот поддеревьев + if leftHeight > rightHeight { + return leftHeight + 1 + } + return rightHeight + 1 +} + +func (bst *BinSearchTree) Delete(targetName string) bool { + if bst.root == nil { + return false + } + + _, found := bst.Search(targetName) + if !found { + return false + } + + bst.root = bst.root.delete(targetName) + return true +} + +func (root *BSTree) delete(targetName string) *BSTree { + if root == nil { + return nil + } + + if targetName < root.data.Name { + root.left = root.left.delete(targetName) + } else if targetName > root.data.Name { + root.right = root.right.delete(targetName) + } else { + // Нашли узел для удаления + + // Случай 1: нет левого потомка + if root.left == nil { + return root.right + } + + // Случай 2: нет правого потомка + if root.right == nil { + return root.left + } + + // Случай 3: оба потомка есть + successor := root.right.Minimum() + root.data = successor.data // Копируем все данные сразу + root.right = root.right.delete(successor.data.Name) + } + + return root +} + +func (bst *BinSearchTree) PrintAll() { + bst.root.printAll(0) +} + +func (bst *BSTree) printAll(depth int) { + if bst == nil { + return + } + + bst.right.printAll(depth + 1) + + for i := 0; i < depth; i++ { + fmt.Printf("\t") + } + bst.PrintNode() + bst.left.printAll(depth + 1) +} diff --git a/stepushovgs/data-structures/source/pkg/structures/hash_table/hash_string.go b/stepushovgs/data-structures/source/pkg/structures/hash_table/hash_string.go new file mode 100644 index 0000000..0efa5bb --- /dev/null +++ b/stepushovgs/data-structures/source/pkg/structures/hash_table/hash_string.go @@ -0,0 +1,15 @@ +package hash_table + +func GetHashString(str string) int { + hash := 0 + + for _, ch := range str { + hash = (hash << 5) - hash + int(ch) + } + + if hash < 0 { + hash = -hash + } + + return hash +} diff --git a/stepushovgs/data-structures/source/pkg/structures/hash_table/hash_table.go b/stepushovgs/data-structures/source/pkg/structures/hash_table/hash_table.go new file mode 100644 index 0000000..129c223 --- /dev/null +++ b/stepushovgs/data-structures/source/pkg/structures/hash_table/hash_table.go @@ -0,0 +1,246 @@ +package hash_table + +import ( + "fmt" + ds "source/pkg/data_struct" +) + +// HashTable - хеш-таблица с цепочками +type HashTable struct { + buckets []*bucket + size int + capacity int + loadFactor float64 +} + +type bucket struct { + head *elementHT +} + +type elementHT struct { + data ds.MyData + next *elementHT +} + +// NewHashTable - создает новую хеш-таблицу +func NewHashTable(capacity int, loadFactor float64) *HashTable { + + buckets := make([]*bucket, capacity) + + for i := 0; i < capacity; i++ { + buckets[i] = &bucket{} + } + + return &HashTable{ + buckets: buckets, + size: 0, + capacity: capacity, + loadFactor: loadFactor, + } +} + +// func (h HashTable) getIndex(name string) int { +// return GetHashString(name) % h.size +// } + +// func (h HashTable) Add(name string) { + +// } + +func (ht *HashTable) GetIndex(name string) int { + hash := GetHashString(name) + return hash % ht.capacity +} + +func (ht *HashTable) Len() int { + return ht.size +} + +// func (ht *HashTable) getIndex(hash int) int { +// return hash % ht.capacity +// } + +func (h *HashTable) Insert(new ds.MyData) { + + if h.size >= int(float64(h.capacity)*h.loadFactor) { + h.resize() + } + + ind := h.GetIndex(new.Name) + + buck := h.buckets[ind] + + current := buck.head + + for current != nil { + if current.data.Name == new.Name { + current.data.Phone = new.Phone + return + } + + current = current.next + } + + newHead := &elementHT{ + data: new, + next: buck.head, + } + + buck.head = newHead + h.size++ +} + +func (ht *HashTable) InsertAll(data []ds.MyData) { + for _, el := range data { + ht.Insert(el) + } +} + +func (h *HashTable) Search(name string) (phone string, status bool) { + ind := h.GetIndex(name) + + buck := h.buckets[ind] + + current := buck.head + + for current != nil { + if current.data.Name == name { + return current.data.Phone, true + } + + current = current.next + } + + return "", false +} + +// func pressEnterToContinue() { +// fmt.Print("Нажмите Enter для продолжения...") +// bufio.NewReader(os.Stdin).ReadBytes('\n') +// } + +// resize - увеличивает размер таблицы +func (ht *HashTable) resize() { + + // fmt.Printf("Resize table!\n elements: %d(%.3f%%)\n old capacity: %d\n new capacity: %d\n", ht.size, float64(ht.size)/float64(ht.capacity), ht.capacity, 2*ht.capacity) + + // ht.Print() + + // pressEnterToContinue() + + newCapacity := ht.capacity * 2 + newHT := NewHashTable(newCapacity, ht.loadFactor) + + for _, b := range ht.buckets { + current := b.head + for current != nil { + newHT.Insert(current.data) + current = current.next + } + } + + ht.buckets = newHT.buckets + ht.capacity = newCapacity +} + +func (ht *HashTable) Delete(name string) bool { + ind := ht.GetIndex(name) + + buck := ht.buckets[ind] + + if buck.head == nil { + return false + } + + if buck.head.data.Name == name { + buck.head = buck.head.next + ht.size-- + return true + } + + prev := buck.head + current := buck.head.next + + for current != nil { + if current.data.Name == name { + prev.next = current.next + ht.size-- + return true + } + prev = current + current = current.next + } + + return false +} + +func (ht *HashTable) Contains(name string) bool { + _, ok := ht.Search(name) + return ok +} + +func (elem *elementHT) ToString() string { + if elem == nil { + return "nil" + } + + return elem.data.ToString() +} + +func (ht *HashTable) Print() { + for ind := 0; ind < ht.capacity; ind++ { + buck := ht.buckets[ind] + current := buck.head + + bucketsStr := "" + + for current != nil { + bucketsStr += " --> " + current.ToString() + current = current.next + } + fmt.Printf("[%d]: %s\n", ind, bucketsStr) + } +} + +func (ht *HashTable) listAll() []ds.MyData { + data := make([]ds.MyData, ht.size) + + index := 0 + + for ind := 0; ind < ht.capacity; ind++ { + buck := ht.buckets[ind] + current := buck.head + + for current != nil { + data[index] = current.data + index++ + // fmt.Println(current.name, current.phone) + current = current.next + } + } + + return data +} + +func (ht *HashTable) ListAll() []ds.MyData { + // fmt.Printf("Size: %d, Capacity: %d\n", ht.size, ht.capacity) + data := ht.listAll() + + data = ds.QSort(data, 0, len(data)-1) + + // for i, el := range data { + // fmt.Printf("[%d]: \"%s\", %d\n", i, el.name, el.phone) + // } + return data +} + +// func (ht *HashTable) PrintMostPopularnames(phone int) { +// // fmt.Printf("Size: %d, Capacity: %d\n", ht.size, ht.capacity) +// data := ht.listAll() + +// data = QSortElementsHT(data, 0, len(data)-1) + +// for i := 0; i < phone; i++ { +// fmt.Printf("[%d]: %3d : %s\n", i, ht.GetIndex(data[len(data)-i-1].name), data[len(data)-i-1].ToString()) +// } +// } diff --git a/stepushovgs/data-structures/source/pkg/structures/linked_list/linked_list.go b/stepushovgs/data-structures/source/pkg/structures/linked_list/linked_list.go new file mode 100644 index 0000000..c2e8bbb --- /dev/null +++ b/stepushovgs/data-structures/source/pkg/structures/linked_list/linked_list.go @@ -0,0 +1,169 @@ +package linked_list + +import ( + "fmt" + ds "source/pkg/data_struct" +) + +/* +Связный список (LinkedListPhoneBook) + +Узел представляется словарём: `{'name': 'Имя', 'phone': '123', 'next': None}.` + +Функции: + +def ll_insert(head, name, phone) — проходит до конца (или сразу добавляет в конец) и возвращает новую голову (если вставка в начало) или изменяет список по ссылке. Удобнее возвращать новую голову, если вставка может быть в начало. + +def ll_find(head, name) — ищет узел, возвращает телефон или None. + +def ll_delete(head, name) — удаляет узел, возвращает новую голову. + +def ll_list_all(head) — собирает все записи в список и сортирует (сортировка вынесена отдельно). +*/ + +type LinkedList struct { + head *LList +} + +type LList struct { + data ds.MyData + + next *LList +} + +func NewLinkedList() *LinkedList { + return &LinkedList{} +} + +func newLinkedList(data ds.MyData) *LList { + return &LList{ + data: data, + next: nil, + } +} + +func (ll *LList) ToString() string { + if ll == nil { + return "nil" + } + return ll.data.ToString() +} + +func (ll *LinkedList) Len() int { + + if ll == nil { + return 0 + } + len := 0 + + current := ll.head + for current != nil { + len++ + current = current.next + } + + return len +} + +func (ll *LinkedList) Insert(data ds.MyData) { + newNode := newLinkedList(data) + + if ll.head == nil { + ll.head = newNode + return + } + + current := ll.head + for current.next != nil { + current = current.next + } + current.next = newNode +} + +func (ll *LinkedList) InsertAll(data []ds.MyData) { + for _, el := range data { + ll.Insert(el) + } +} + +func (ll *LinkedList) Search(targetName string) (string, bool) { + current := ll.head + + for current != nil { + if current.data.Name == targetName { + return current.data.Phone, true + } + + current = current.next + } + return "", false +} + +func (ll *LinkedList) PrintAll() { + current := ll.head + index := 0 + + for current != nil { + fmt.Printf("[%d] %s\n", index, current.ToString()) + index++ + current = current.next + } +} + +func (ll *LinkedList) Delete(targetName string) bool { + if ll.head == nil { + return false + } + + // Особый случай: удаление головы списка + if ll.head.data.Name == targetName { + // Сдвигаем данные и указатель + *ll.head = *ll.head.next + return true + } + + // Стандартное удаление из середины/конца + current := ll.head + for current.next != nil { + if current.next.data.Name == targetName { + current.next = current.next.next + return true + } + current = current.next + } + + return false +} + +func (ll *LinkedList) listAll() []ds.MyData { + current := ll.head + + listLL := make([]ds.MyData, ll.Len()) + ind := 0 + for current != nil { + listLL[ind] = current.data + ind++ + current = current.next + } + + listLL = ds.QSort(listLL, 0, len(listLL)-1) + return listLL +} + +func (ll *LinkedList) GetByInd(ind int) (ds.MyData, bool) { + if ind >= ll.Len() { + return ds.MyData{}, false + } + + index := 0 + current := ll.head + for current != nil { + if index == ind { + return current.data, true + } + current = current.next + index++ + } + + return ds.MyData{}, false +} diff --git a/stepushovgs/data-structures/source/results/benchmarks.csv b/stepushovgs/data-structures/source/results/benchmarks.csv new file mode 100644 index 0000000..c1e916c --- /dev/null +++ b/stepushovgs/data-structures/source/results/benchmarks.csv @@ -0,0 +1,379 @@ +Structure,Mode,Operation,Time +Связный список,Случайный,Вставка,0.199516 +Связный список,Случайный,Поиск,0.024629 +Связный список,Случайный,Удаление,0.014065 +Связный список,Случайный,Вставка,0.196946 +Связный список,Случайный,Поиск,0.023807 +Связный список,Случайный,Удаление,0.013115 +Связный список,Случайный,Вставка,0.191475 +Связный список,Случайный,Поиск,0.023083 +Связный список,Случайный,Удаление,0.014584 +Связный список,Случайный,Вставка,0.189964 +Связный список,Случайный,Поиск,0.024014 +Связный список,Случайный,Удаление,0.014049 +Связный список,Случайный,Вставка,0.192273 +Связный список,Случайный,Поиск,0.023643 +Связный список,Случайный,Удаление,0.013426 +Связный список,Случайный,Вставка,0.191623 +Связный список,Случайный,Поиск,0.022900 +Связный список,Случайный,Удаление,0.014242 +Связный список,Случайный,Вставка,0.192131 +Связный список,Случайный,Поиск,0.024910 +Связный список,Случайный,Удаление,0.013999 +Связный список,Случайный,Вставка,0.190054 +Связный список,Случайный,Поиск,0.023244 +Связный список,Случайный,Удаление,0.014556 +Связный список,Случайный,Вставка,0.199543 +Связный список,Случайный,Поиск,0.023660 +Связный список,Случайный,Удаление,0.015066 +Связный список,Случайный,Вставка,0.193103 +Связный список,Случайный,Поиск,0.023620 +Связный список,Случайный,Удаление,0.014555 +Связный список,Случайный,Вставка,0.191255 +Связный список,Случайный,Поиск,0.023310 +Связный список,Случайный,Удаление,0.014155 +Связный список,Случайный,Вставка,0.190051 +Связный список,Случайный,Поиск,0.023622 +Связный список,Случайный,Удаление,0.014049 +Связный список,Случайный,Вставка,0.194320 +Связный список,Случайный,Поиск,0.024634 +Связный список,Случайный,Удаление,0.014369 +Связный список,Случайный,Вставка,0.191525 +Связный список,Случайный,Поиск,0.023547 +Связный список,Случайный,Удаление,0.014032 +Связный список,Случайный,Вставка,0.189879 +Связный список,Случайный,Поиск,0.022658 +Связный список,Случайный,Удаление,0.014757 +Связный список,Случайный,Вставка,0.193771 +Связный список,Случайный,Поиск,0.023675 +Связный список,Случайный,Удаление,0.014797 +Связный список,Случайный,Вставка,0.203894 +Связный список,Случайный,Поиск,0.025087 +Связный список,Случайный,Удаление,0.014177 +Связный список,Случайный,Вставка,0.192419 +Связный список,Случайный,Поиск,0.023327 +Связный список,Случайный,Удаление,0.014068 +Связный список,Случайный,Вставка,0.191059 +Связный список,Случайный,Поиск,0.023409 +Связный список,Случайный,Удаление,0.013834 +Связный список,Случайный,Вставка,0.192096 +Связный список,Случайный,Поиск,0.023889 +Связный список,Случайный,Удаление,0.015085 +Связный список,Случайный,Вставка (среднее),0.193345 +Связный список,Случайный,Поиск (среднее),0.023733 +Связный список,Случайный,Удаление (среднее),0.014249 +Связный список,Отсортированный,Вставка,0.193317 +Связный список,Отсортированный,Поиск,0.033389 +Связный список,Отсортированный,Удаление,0.023146 +Связный список,Отсортированный,Вставка,0.190249 +Связный список,Отсортированный,Поиск,0.032418 +Связный список,Отсортированный,Удаление,0.023950 +Связный список,Отсортированный,Вставка,0.193341 +Связный список,Отсортированный,Поиск,0.033679 +Связный список,Отсортированный,Удаление,0.024198 +Связный список,Отсортированный,Вставка,0.192107 +Связный список,Отсортированный,Поиск,0.035083 +Связный список,Отсортированный,Удаление,0.031384 +Связный список,Отсортированный,Вставка,0.196266 +Связный список,Отсортированный,Поиск,0.033967 +Связный список,Отсортированный,Удаление,0.023633 +Связный список,Отсортированный,Вставка,0.193438 +Связный список,Отсортированный,Поиск,0.033898 +Связный список,Отсортированный,Удаление,0.022652 +Связный список,Отсортированный,Вставка,0.192293 +Связный список,Отсортированный,Поиск,0.033186 +Связный список,Отсортированный,Удаление,0.024209 +Связный список,Отсортированный,Вставка,0.193963 +Связный список,Отсортированный,Поиск,0.041383 +Связный список,Отсортированный,Удаление,0.027010 +Связный список,Отсортированный,Вставка,0.191974 +Связный список,Отсортированный,Поиск,0.033188 +Связный список,Отсортированный,Удаление,0.024141 +Связный список,Отсортированный,Вставка,0.193575 +Связный список,Отсортированный,Поиск,0.034097 +Связный список,Отсортированный,Удаление,0.023053 +Связный список,Отсортированный,Вставка,0.195551 +Связный список,Отсортированный,Поиск,0.033767 +Связный список,Отсортированный,Удаление,0.023550 +Связный список,Отсортированный,Вставка,0.193096 +Связный список,Отсортированный,Поиск,0.034052 +Связный список,Отсортированный,Удаление,0.023542 +Связный список,Отсортированный,Вставка,0.192483 +Связный список,Отсортированный,Поиск,0.033566 +Связный список,Отсортированный,Удаление,0.023538 +Связный список,Отсортированный,Вставка,0.191346 +Связный список,Отсортированный,Поиск,0.033764 +Связный список,Отсортированный,Удаление,0.023127 +Связный список,Отсортированный,Вставка,0.191555 +Связный список,Отсортированный,Поиск,0.033191 +Связный список,Отсортированный,Удаление,0.024127 +Связный список,Отсортированный,Вставка,0.190323 +Связный список,Отсортированный,Поиск,0.033676 +Связный список,Отсортированный,Удаление,0.023664 +Связный список,Отсортированный,Вставка,0.192296 +Связный список,Отсортированный,Поиск,0.032708 +Связный список,Отсортированный,Удаление,0.024118 +Связный список,Отсортированный,Вставка,0.204537 +Связный список,Отсортированный,Поиск,0.041774 +Связный список,Отсортированный,Удаление,0.026976 +Связный список,Отсортированный,Вставка,0.193468 +Связный список,Отсортированный,Поиск,0.033044 +Связный список,Отсортированный,Удаление,0.023545 +Связный список,Отсортированный,Вставка,0.204401 +Связный список,Отсортированный,Поиск,0.035750 +Связный список,Отсортированный,Удаление,0.026609 +Связный список,Отсортированный,Вставка (среднее),0.193979 +Связный список,Отсортированный,Поиск (среднее),0.034479 +Связный список,Отсортированный,Удаление (среднее),0.024509 +Хеш таблица,Случайный,Вставка,0.003026 +Хеш таблица,Случайный,Поиск,0.000000 +Хеш таблица,Случайный,Удаление,0.000000 +Хеш таблица,Случайный,Вставка,0.003299 +Хеш таблица,Случайный,Поиск,0.000000 +Хеш таблица,Случайный,Удаление,0.000000 +Хеш таблица,Случайный,Вставка,0.003808 +Хеш таблица,Случайный,Поиск,0.001001 +Хеш таблица,Случайный,Удаление,0.000000 +Хеш таблица,Случайный,Вставка,0.003292 +Хеш таблица,Случайный,Поиск,0.000000 +Хеш таблица,Случайный,Удаление,0.000000 +Хеш таблица,Случайный,Вставка,0.004268 +Хеш таблица,Случайный,Поиск,0.000000 +Хеш таблица,Случайный,Удаление,0.000000 +Хеш таблица,Случайный,Вставка,0.003100 +Хеш таблица,Случайный,Поиск,0.000000 +Хеш таблица,Случайный,Удаление,0.000000 +Хеш таблица,Случайный,Вставка,0.004619 +Хеш таблица,Случайный,Поиск,0.000000 +Хеш таблица,Случайный,Удаление,0.000000 +Хеш таблица,Случайный,Вставка,0.004010 +Хеш таблица,Случайный,Поиск,0.000000 +Хеш таблица,Случайный,Удаление,0.000000 +Хеш таблица,Случайный,Вставка,0.002825 +Хеш таблица,Случайный,Поиск,0.000000 +Хеш таблица,Случайный,Удаление,0.000000 +Хеш таблица,Случайный,Вставка,0.004394 +Хеш таблица,Случайный,Поиск,0.000000 +Хеш таблица,Случайный,Удаление,0.000000 +Хеш таблица,Случайный,Вставка,0.003335 +Хеш таблица,Случайный,Поиск,0.000000 +Хеш таблица,Случайный,Удаление,0.000000 +Хеш таблица,Случайный,Вставка,0.004183 +Хеш таблица,Случайный,Поиск,0.000000 +Хеш таблица,Случайный,Удаление,0.000000 +Хеш таблица,Случайный,Вставка,0.002352 +Хеш таблица,Случайный,Поиск,0.000000 +Хеш таблица,Случайный,Удаление,0.000000 +Хеш таблица,Случайный,Вставка,0.004124 +Хеш таблица,Случайный,Поиск,0.000000 +Хеш таблица,Случайный,Удаление,0.000000 +Хеш таблица,Случайный,Вставка,0.003422 +Хеш таблица,Случайный,Поиск,0.000000 +Хеш таблица,Случайный,Удаление,0.000000 +Хеш таблица,Случайный,Вставка,0.002977 +Хеш таблица,Случайный,Поиск,0.000000 +Хеш таблица,Случайный,Удаление,0.000000 +Хеш таблица,Случайный,Вставка,0.005030 +Хеш таблица,Случайный,Поиск,0.000000 +Хеш таблица,Случайный,Удаление,0.000000 +Хеш таблица,Случайный,Вставка,0.003815 +Хеш таблица,Случайный,Поиск,0.000000 +Хеш таблица,Случайный,Удаление,0.000000 +Хеш таблица,Случайный,Вставка,0.003015 +Хеш таблица,Случайный,Поиск,0.000000 +Хеш таблица,Случайный,Удаление,0.000000 +Хеш таблица,Случайный,Вставка,0.003805 +Хеш таблица,Случайный,Поиск,0.000000 +Хеш таблица,Случайный,Удаление,0.000000 +Хеш таблица,Случайный,Вставка (среднее),0.003635 +Хеш таблица,Случайный,Поиск (среднее),0.000050 +Хеш таблица,Случайный,Удаление (среднее),0.000000 +Хеш таблица,Отсортированный,Вставка,0.002509 +Хеш таблица,Отсортированный,Поиск,0.000000 +Хеш таблица,Отсортированный,Удаление,0.000000 +Хеш таблица,Отсортированный,Вставка,0.003017 +Хеш таблица,Отсортированный,Поиск,0.000000 +Хеш таблица,Отсортированный,Удаление,0.000000 +Хеш таблица,Отсортированный,Вставка,0.003126 +Хеш таблица,Отсортированный,Поиск,0.001002 +Хеш таблица,Отсортированный,Удаление,0.000000 +Хеш таблица,Отсортированный,Вставка,0.002257 +Хеш таблица,Отсортированный,Поиск,0.000000 +Хеш таблица,Отсортированный,Удаление,0.000000 +Хеш таблица,Отсортированный,Вставка,0.003013 +Хеш таблица,Отсортированный,Поиск,0.000000 +Хеш таблица,Отсортированный,Удаление,0.001668 +Хеш таблица,Отсортированный,Вставка,0.002519 +Хеш таблица,Отсортированный,Поиск,0.000000 +Хеш таблица,Отсортированный,Удаление,0.000000 +Хеш таблица,Отсортированный,Вставка,0.003346 +Хеш таблица,Отсортированный,Поиск,0.000000 +Хеш таблица,Отсортированный,Удаление,0.000000 +Хеш таблица,Отсортированный,Вставка,0.004243 +Хеш таблица,Отсортированный,Поиск,0.000000 +Хеш таблица,Отсортированный,Удаление,0.000000 +Хеш таблица,Отсортированный,Вставка,0.001588 +Хеш таблица,Отсортированный,Поиск,0.000000 +Хеш таблица,Отсортированный,Удаление,0.001585 +Хеш таблица,Отсортированный,Вставка,0.003053 +Хеш таблица,Отсортированный,Поиск,0.000000 +Хеш таблица,Отсортированный,Удаление,0.000000 +Хеш таблица,Отсортированный,Вставка,0.003009 +Хеш таблица,Отсортированный,Поиск,0.000000 +Хеш таблица,Отсортированный,Удаление,0.000000 +Хеш таблица,Отсортированный,Вставка,0.003074 +Хеш таблица,Отсортированный,Поиск,0.001185 +Хеш таблица,Отсортированный,Удаление,0.000000 +Хеш таблица,Отсортированный,Вставка,0.003145 +Хеш таблица,Отсортированный,Поиск,0.000000 +Хеш таблица,Отсортированный,Удаление,0.000000 +Хеш таблица,Отсортированный,Вставка,0.004152 +Хеш таблица,Отсортированный,Поиск,0.000000 +Хеш таблица,Отсортированный,Удаление,0.000000 +Хеш таблица,Отсортированный,Вставка,0.004280 +Хеш таблица,Отсортированный,Поиск,0.000000 +Хеш таблица,Отсортированный,Удаление,0.000000 +Хеш таблица,Отсортированный,Вставка,0.003098 +Хеш таблица,Отсортированный,Поиск,0.000000 +Хеш таблица,Отсортированный,Удаление,0.000000 +Хеш таблица,Отсортированный,Вставка,0.004386 +Хеш таблица,Отсортированный,Поиск,0.000000 +Хеш таблица,Отсортированный,Удаление,0.000000 +Хеш таблица,Отсортированный,Вставка,0.003416 +Хеш таблица,Отсортированный,Поиск,0.000000 +Хеш таблица,Отсортированный,Удаление,0.000000 +Хеш таблица,Отсортированный,Вставка,0.002529 +Хеш таблица,Отсортированный,Поиск,0.000000 +Хеш таблица,Отсортированный,Удаление,0.000000 +Хеш таблица,Отсортированный,Вставка,0.003863 +Хеш таблица,Отсортированный,Поиск,0.000000 +Хеш таблица,Отсортированный,Удаление,0.000000 +Хеш таблица,Отсортированный,Вставка (среднее),0.003181 +Хеш таблица,Отсортированный,Поиск (среднее),0.000109 +Хеш таблица,Отсортированный,Удаление (среднее),0.000163 +Бинарное дерево поиска,Случайный,Вставка,0.004532 +Бинарное дерево поиска,Случайный,Поиск,0.000000 +Бинарное дерево поиска,Случайный,Удаление,0.001019 +Бинарное дерево поиска,Случайный,Вставка,0.005690 +Бинарное дерево поиска,Случайный,Поиск,0.000000 +Бинарное дерево поиска,Случайный,Удаление,0.001004 +Бинарное дерево поиска,Случайный,Вставка,0.005536 +Бинарное дерево поиска,Случайный,Поиск,0.001001 +Бинарное дерево поиска,Случайный,Удаление,0.000000 +Бинарное дерево поиска,Случайный,Вставка,0.008002 +Бинарное дерево поиска,Случайный,Поиск,0.000000 +Бинарное дерево поиска,Случайный,Удаление,0.000000 +Бинарное дерево поиска,Случайный,Вставка,0.007454 +Бинарное дерево поиска,Случайный,Поиск,0.001012 +Бинарное дерево поиска,Случайный,Удаление,0.000000 +Бинарное дерево поиска,Случайный,Вставка,0.006524 +Бинарное дерево поиска,Случайный,Поиск,0.000000 +Бинарное дерево поиска,Случайный,Удаление,0.001000 +Бинарное дерево поиска,Случайный,Вставка,0.004504 +Бинарное дерево поиска,Случайный,Поиск,0.000000 +Бинарное дерево поиска,Случайный,Удаление,0.000000 +Бинарное дерево поиска,Случайный,Вставка,0.007206 +Бинарное дерево поиска,Случайный,Поиск,0.000000 +Бинарное дерево поиска,Случайный,Удаление,0.000000 +Бинарное дерево поиска,Случайный,Вставка,0.006102 +Бинарное дерево поиска,Случайный,Поиск,0.000000 +Бинарное дерево поиска,Случайный,Удаление,0.000000 +Бинарное дерево поиска,Случайный,Вставка,0.007414 +Бинарное дерево поиска,Случайный,Поиск,0.000000 +Бинарное дерево поиска,Случайный,Удаление,0.001003 +Бинарное дерево поиска,Случайный,Вставка,0.005723 +Бинарное дерево поиска,Случайный,Поиск,0.000000 +Бинарное дерево поиска,Случайный,Удаление,0.001503 +Бинарное дерево поиска,Случайный,Вставка,0.005705 +Бинарное дерево поиска,Случайный,Поиск,0.001007 +Бинарное дерево поиска,Случайный,Удаление,0.000000 +Бинарное дерево поиска,Случайный,Вставка,0.006501 +Бинарное дерево поиска,Случайный,Поиск,0.000000 +Бинарное дерево поиска,Случайный,Удаление,0.001005 +Бинарное дерево поиска,Случайный,Вставка,0.005375 +Бинарное дерево поиска,Случайный,Поиск,0.000000 +Бинарное дерево поиска,Случайный,Удаление,0.001000 +Бинарное дерево поиска,Случайный,Вставка,0.004520 +Бинарное дерево поиска,Случайный,Поиск,0.001006 +Бинарное дерево поиска,Случайный,Удаление,0.000000 +Бинарное дерево поиска,Случайный,Вставка,0.005931 +Бинарное дерево поиска,Случайный,Поиск,0.001034 +Бинарное дерево поиска,Случайный,Удаление,0.000000 +Бинарное дерево поиска,Случайный,Вставка,0.007446 +Бинарное дерево поиска,Случайный,Поиск,0.000634 +Бинарное дерево поиска,Случайный,Удаление,0.000521 +Бинарное дерево поиска,Случайный,Вставка,0.005628 +Бинарное дерево поиска,Случайный,Поиск,0.000513 +Бинарное дерево поиска,Случайный,Удаление,0.000510 +Бинарное дерево поиска,Случайный,Вставка,0.005162 +Бинарное дерево поиска,Случайный,Поиск,0.000511 +Бинарное дерево поиска,Случайный,Удаление,0.000512 +Бинарное дерево поиска,Случайный,Вставка,0.006672 +Бинарное дерево поиска,Случайный,Поиск,0.000000 +Бинарное дерево поиска,Случайный,Удаление,0.000549 +Бинарное дерево поиска,Случайный,Вставка (среднее),0.006081 +Бинарное дерево поиска,Случайный,Поиск (среднее),0.000336 +Бинарное дерево поиска,Случайный,Удаление (среднее),0.000481 +Бинарное дерево поиска,Отсортированный,Вставка,0.993672 +Бинарное дерево поиска,Отсортированный,Поиск,0.060430 +Бинарное дерево поиска,Отсортированный,Удаление,0.065743 +Бинарное дерево поиска,Отсортированный,Вставка,0.984657 +Бинарное дерево поиска,Отсортированный,Поиск,0.060576 +Бинарное дерево поиска,Отсортированный,Удаление,0.067630 +Бинарное дерево поиска,Отсортированный,Вставка,1.077915 +Бинарное дерево поиска,Отсортированный,Поиск,0.064100 +Бинарное дерево поиска,Отсортированный,Удаление,0.066554 +Бинарное дерево поиска,Отсортированный,Вставка,0.986610 +Бинарное дерево поиска,Отсортированный,Поиск,0.060386 +Бинарное дерево поиска,Отсортированный,Удаление,0.065383 +Бинарное дерево поиска,Отсортированный,Вставка,0.976014 +Бинарное дерево поиска,Отсортированный,Поиск,0.060724 +Бинарное дерево поиска,Отсортированный,Удаление,0.066072 +Бинарное дерево поиска,Отсортированный,Вставка,0.954288 +Бинарное дерево поиска,Отсортированный,Поиск,0.062234 +Бинарное дерево поиска,Отсортированный,Удаление,0.067913 +Бинарное дерево поиска,Отсортированный,Вставка,0.948662 +Бинарное дерево поиска,Отсортированный,Поиск,0.061164 +Бинарное дерево поиска,Отсортированный,Удаление,0.064309 +Бинарное дерево поиска,Отсортированный,Вставка,0.940560 +Бинарное дерево поиска,Отсортированный,Поиск,0.058861 +Бинарное дерево поиска,Отсортированный,Удаление,0.065901 +Бинарное дерево поиска,Отсортированный,Вставка,0.944873 +Бинарное дерево поиска,Отсортированный,Поиск,0.060448 +Бинарное дерево поиска,Отсортированный,Удаление,0.065882 +Бинарное дерево поиска,Отсортированный,Вставка,0.928810 +Бинарное дерево поиска,Отсортированный,Поиск,0.061107 +Бинарное дерево поиска,Отсортированный,Удаление,0.064740 +Бинарное дерево поиска,Отсортированный,Вставка,0.925909 +Бинарное дерево поиска,Отсортированный,Поиск,0.060174 +Бинарное дерево поиска,Отсортированный,Удаление,0.064934 +Бинарное дерево поиска,Отсортированный,Вставка,0.926721 +Бинарное дерево поиска,Отсортированный,Поиск,0.062980 +Бинарное дерево поиска,Отсортированный,Удаление,0.062940 +Бинарное дерево поиска,Отсортированный,Вставка,0.932508 +Бинарное дерево поиска,Отсортированный,Поиск,0.059849 +Бинарное дерево поиска,Отсортированный,Удаление,0.064563 +Бинарное дерево поиска,Отсортированный,Вставка,0.941225 +Бинарное дерево поиска,Отсортированный,Поиск,0.058925 +Бинарное дерево поиска,Отсортированный,Удаление,0.062112 +Бинарное дерево поиска,Отсортированный,Вставка,0.935714 +Бинарное дерево поиска,Отсортированный,Поиск,0.059868 +Бинарное дерево поиска,Отсортированный,Удаление,0.064928 +Бинарное дерево поиска,Отсортированный,Вставка,0.925400 +Бинарное дерево поиска,Отсортированный,Поиск,0.060723 +Бинарное дерево поиска,Отсортированный,Удаление,0.063271 +Бинарное дерево поиска,Отсортированный,Вставка,0.935481 +Бинарное дерево поиска,Отсортированный,Поиск,0.059515 +Бинарное дерево поиска,Отсортированный,Удаление,0.063816 +Бинарное дерево поиска,Отсортированный,Вставка,0.930136 +Бинарное дерево поиска,Отсортированный,Поиск,0.057873 +Бинарное дерево поиска,Отсортированный,Удаление,0.063642 +Бинарное дерево поиска,Отсортированный,Вставка,0.931535 +Бинарное дерево поиска,Отсортированный,Поиск,0.059197 +Бинарное дерево поиска,Отсортированный,Удаление,0.064474 +Бинарное дерево поиска,Отсортированный,Вставка,0.933106 +Бинарное дерево поиска,Отсортированный,Поиск,0.062731 +Бинарное дерево поиска,Отсортированный,Удаление,0.062908 +Бинарное дерево поиска,Отсортированный,Вставка (среднее),0.952690 +Бинарное дерево поиска,Отсортированный,Поиск (среднее),0.060593 +Бинарное дерево поиска,Отсортированный,Удаление (среднее),0.064886 diff --git a/stepushovgs/data-structures/source/tests/benchmark/main.go b/stepushovgs/data-structures/source/tests/benchmark/main.go new file mode 100644 index 0000000..5993dbb --- /dev/null +++ b/stepushovgs/data-structures/source/tests/benchmark/main.go @@ -0,0 +1,288 @@ +package main + +import ( + "fmt" + "math/rand" + csvwriter "source/pkg/csv_writer" + ds "source/pkg/data_struct" + dg "source/pkg/gen_data" + bst "source/pkg/structures/bin_search_tree" + ht "source/pkg/structures/hash_table" + ll "source/pkg/structures/linked_list" + + // csv "source/pkg/csv_ri" + + "time" +) + +const ( + countUsers = 20_000 + countRepeat = 20 + countRandomSearch = 1000 + countNotExitstSearch = 500 + countDeletes = 1000 +) + +type TestData struct { + Items []ds.MyData // все записи + ItemsSorted []ds.MyData // все записи отсортированные + Search []ds.MyData // для поиска (существующие и несуществующие) + ToDelete []ds.MyData // для удаления + UniqueItems []ds.MyData // Уникальные элементы для тестов +} + +type DataStructure interface { + Insert(data ds.MyData) + InsertAll(data []ds.MyData) + Search(name string) (string, bool) + Delete(name string) bool + Len() int +} + +// Создатели структур +type StructureFactory func() DataStructure + +func NewLinkedList() DataStructure { + return ll.NewLinkedList() +} + +func NewHashTable() DataStructure { + return ht.NewHashTable(256, 0.75) +} + +func NewBinSearchTree() DataStructure { + return bst.NewBinSearchTree() +} + +func uniqueElements(data []ds.MyData) []ds.MyData { + res := make([]ds.MyData, 0, len(data)) + + for _, el := range data { + isUnique := true + for _, resEl := range res { + if el == resEl { + isUnique = false + break + } + } + if isUnique { + res = append(res, el) + } + } + + return res +} + +func GenerateTestData() TestData { + items := dg.RecordsShuffled(countUsers) + // fmt.Println("isSorted:", isSorted(items)) + itemsSort := ds.QSort(items, 0, len(items)-1) + + uniqueItems := uniqueElements(items) + existing := make([]ds.MyData, countRandomSearch) + // notExisting := [countNotExitstSearch]ds.MyData{} + notExisting := make([]ds.MyData, countNotExitstSearch) + toDelete := make([]ds.MyData, countDeletes) + + countUniq := len(uniqueItems) + for i := 0; i < countRandomSearch; i++ { + // randInd := rand.Intn(countUsers) + randInd := rand.Intn(countUniq) + existing[i] = uniqueItems[randInd] + // fmt.Println(randInd) + } + + for i := 0; i < countNotExitstSearch; i++ { + // randInd := rand.Intn(countUsers) + randInd := rand.Intn(10) + name := fmt.Sprintf("User_%d", randInd) + notExisting[i] = *ds.NewData(name, "") + // fmt.Println(randInd) + } + + for _, el := range notExisting { + existing = append(existing, el) + } + + // toDelete = make([]ds.MyData, countDeletes) + usedIndices := make(map[int]bool) + for i := 0; i < countDeletes; i++ { + var randInd int + for { + randInd = rand.Intn(countUniq) + if !usedIndices[randInd] { + usedIndices[randInd] = true + break + } + } + toDelete[i] = uniqueItems[randInd] + } + + return TestData{ + Items: items, + ItemsSorted: itemsSort, + Search: existing, + ToDelete: toDelete, + UniqueItems: uniqueItems, + } +} + +// Тест вставки массива данных (один раз) +func testOnesInsert(structure DataStructure, data []ds.MyData) float64 { + start := time.Now() + + for _, item := range data { + structure.Insert(item) + } + + return time.Since(start).Seconds() +} + +// Тест поиска массива данных (один раз) +func testOnesSearch(structure DataStructure, data []ds.MyData) float64 { + start := time.Now() + + // flag := true + + for _, item := range data { + structure.Search(item.Name) + // p, ok := structure.Search(item.Name) + + // if flag { + // flag = ((p == item.Phone) == ok) + // } + } + + // fmt.Println(flag) + + return time.Since(start).Seconds() +} + +// Тест удаления массива данных (один раз) +func testOnesDelete(structure DataStructure, data []ds.MyData) float64 { + start := time.Now() + + for _, item := range data { + structure.Delete(item.Name) + } + + return time.Since(start).Seconds() +} + +func testForData(nameStruct, mode string, factory StructureFactory, data_insert, data_search, data_delete []ds.MyData) { + BenchRes := make([]csvwriter.BenchmarkResult, 0, countRepeat*3+3) // Массив строк отчёта + + averageTimeInsert := 0. + averageTimeSearch := 0. + averageTimeDelete := 0. + + for iteration := 0; iteration < countRepeat; iteration++ { + + structure := factory() + + insertTime := testOnesInsert(structure, data_insert) + averageTimeInsert += insertTime + + // Отладочная информация для бинарного дерева (проверка на вырождение) + if bst, ok := structure.(*bst.BinSearchTree); ok { + fmt.Printf( + "Высота дерева: %d, элементов: %d\n", + bst.Height(), bst.Len(), + ) + } + + BenchRes = append(BenchRes, csvwriter.BenchmarkResult{ + Structure: nameStruct, + Mode: mode, + Operation: "Вставка", + Time: insertTime, + }) + + searchTime := testOnesSearch(structure, data_search) + averageTimeSearch += searchTime + + BenchRes = append(BenchRes, csvwriter.BenchmarkResult{ + Structure: nameStruct, + Mode: mode, + Operation: "Поиск", + Time: searchTime, + }) + + deleteTime := testOnesDelete(structure, data_delete) + averageTimeDelete += deleteTime + + BenchRes = append(BenchRes, csvwriter.BenchmarkResult{ + Structure: nameStruct, + Mode: mode, + Operation: "Удаление", + Time: deleteTime, + }) + fmt.Printf("%s | Вставка | %s | Время: %f\n", nameStruct, mode, insertTime) + fmt.Printf("%s | Поиск | %s | Время: %f\n", nameStruct, mode, searchTime) + fmt.Printf("%s | Удаление | %s | Время: %.9f\n", nameStruct, mode, deleteTime) + } + + averageTimeInsert /= countRepeat + averageTimeSearch /= countRepeat + averageTimeDelete /= countRepeat + + BenchRes = append(BenchRes, csvwriter.BenchmarkResult{ + Structure: nameStruct, + Mode: mode, + Operation: "Вставка (среднее)", + Time: averageTimeInsert, + }) + BenchRes = append(BenchRes, csvwriter.BenchmarkResult{ + Structure: nameStruct, + Mode: mode, + Operation: "Поиск (среднее)", + Time: averageTimeSearch, + }) + BenchRes = append(BenchRes, csvwriter.BenchmarkResult{ + Structure: nameStruct, + Mode: mode, + Operation: "Удаление (среднее)", + Time: averageTimeDelete, + }) + + fmt.Printf("%s | Вставка | %s | Время (среднее): %f\n", nameStruct, mode, averageTimeInsert) + fmt.Printf("%s | Поиск | %s | Время (среднее): %f\n", nameStruct, mode, averageTimeSearch) + fmt.Printf("%s | Удаление | %s | Время (среднее): %f\n", nameStruct, mode, averageTimeDelete) + + csvwriter.AppendRaw(BenchRes) +} + +func isSorted(data []ds.MyData) bool { + for i := 0; i < len(data)-1; i++ { + if data[i].Name > data[i+1].Name { + return false + } + } + return true +} + +func Test(nameStruct string, factory StructureFactory) { + data := GenerateTestData() + + // fmt.Println("items", isSorted(data.Items)) + // fmt.Println("items sort", isSorted(data.ItemsSorted)) + + testForData(nameStruct, "Случайный", factory, data.Items, data.Search, data.ToDelete) + + testForData(nameStruct, "Отсортированный", factory, data.ItemsSorted, data.Search, data.ToDelete) + +} + +func main() { + + csvwriter.CreateEmptyCSV("results", "benchmarks.csv") + + fmt.Println("============= Начало тестов =============") + + Test("Связный список", NewLinkedList) + Test("Хеш таблица", NewHashTable) + Test("Бинарное дерево поиска", NewBinSearchTree) + + // fmt.Println("User_0001" < "User_00100") + // fmt.Println(isSorted(dg.RecordsShuffled(10000))) +} diff --git a/stepushovgs/data-structures/source/tests/test_bst/main.go b/stepushovgs/data-structures/source/tests/test_bst/main.go new file mode 100644 index 0000000..f5e5ccb --- /dev/null +++ b/stepushovgs/data-structures/source/tests/test_bst/main.go @@ -0,0 +1,50 @@ +package main + +import ( + "bufio" + "fmt" + "os" + ds "source/pkg/data_struct" + bst "source/pkg/structures/bin_search_tree" +) + +const ( + countNumbers = 64 +) + +func pressEnterToContinue() { + fmt.Print("Нажмите Enter для продолжения...") + bufio.NewReader(os.Stdin).ReadBytes('\n') +} + +// isInArr проверяет, содержится ли target в срезе arr[:len] +func isInArr(arr []int, length int, target int) bool { + for i := 0; i < length; i++ { + if arr[i] == target { + return true + } + } + return false +} + +func main() { + fmt.Println("hello world!") + + head := bst.NewBinSearchTree() + + for i := 1; i <= 20; i++ { + name := fmt.Sprintf("User_%02d", i) + phone := fmt.Sprintf("Phone_%02d", i) + head.Insert(*ds.NewData(name, phone)) + } + + head.BstInorderTraversal() + + head.Delete("User_05") + fmt.Println("Удаляем User_05") + + head.BstInorderTraversal() + + fmt.Println(head.Search("User_07")) + +} diff --git a/stepushovgs/data-structures/source/tests/test_csv_writer/main.go b/stepushovgs/data-structures/source/tests/test_csv_writer/main.go new file mode 100644 index 0000000..db06963 --- /dev/null +++ b/stepushovgs/data-structures/source/tests/test_csv_writer/main.go @@ -0,0 +1,19 @@ +package main + +import ( + "fmt" + csvwriter "source/pkg/csv_writer" +) + +func main() { + // Простой способ + results := []csvwriter.BenchmarkResult{ + {Structure: "HashTable", Mode: "Chaining", Operation: "Insert", Time: 0.001234}, + {Structure: "LinkedList", Mode: "Singly", Operation: "Search", Time: 0.005678}, + {Structure: "BSTree", Mode: "Recursive", Operation: "Delete", Time: 0.003456}, + } + + if err := csvwriter.AppendRaw(results); err != nil { + fmt.Printf("Ошибка: %v\n", err) + } +} diff --git a/stepushovgs/data-structures/source/tests/test_ht/main.go b/stepushovgs/data-structures/source/tests/test_ht/main.go new file mode 100644 index 0000000..2920570 --- /dev/null +++ b/stepushovgs/data-structures/source/tests/test_ht/main.go @@ -0,0 +1,90 @@ +package main + +import ( + "fmt" + + // hash_table "hash-table-task/hash-table" + + ds "source/pkg/data_struct" + ht "source/pkg/structures/hash_table" +) + +/* + +1. Сконструировать и реализовать свою хеш таблицу + +- изначальный размер 8, коэф-т загрузки 0.75 + +- Преобразование подаваемого данного в индекс с помощью хеш функции(в ручну) пример: полиномиальный хеш + +- Коллизии обрабатываются методом цепочек, каждая корзина таблицы - список в котором хранятся пары значений key-value + +- При превышении коэф-та загрузки происходит перехеширование таблицы, размер увеличивается вдвое, все пары заново вставляются в таблицу. + +2. Читаем текстовый файл, разбивает на слова, приводим к нижнему регистру, подсчитываем повторения каждого слова: key - слово, value - кол-во повторений + +- На вывод 10 самых встречающихся слов, для каждого слова выводим: ind(hash), key, value +- Текст - первая глава, первые три стиха Евгений Онегин + +*/ + +func main() { + fmt.Println("hello world") + head := ht.NewHashTable(8, 0.75) + + for i := 1; i <= 40; i++ { + name := fmt.Sprintf("User_%02d", i) + phone := fmt.Sprintf("Phone_%02d", i) + head.Insert(*ds.NewData(name, phone)) + } + + head.Print() + + head.Delete("User_05") + fmt.Println("Удаляем User_05") + + head.Print() + + fmt.Println(head.Search("User_07")) + + // Чтение всего файла + + // const filePath = "../data/onegin.txt" + // // const filePath = "../data/onegin_full.txt" + + // data, err := os.ReadFile(filePath) + // text := string(data) + // if err != nil { + // fmt.Println("Ошибка чтения файла:", err) + // return + // } + // fmt.Println(text) + + // text = strings.ToLower(text) + + // // Разбиение на слова (разделители: пробелы и переводы строк) + // re := regexp.MustCompile(`[\p{L}\p{N}-]+`) + // words := re.FindAllString(text, -1) + + // fmt.Printf("Найдено слов: %d\n", len(words)) + // for i, word := range words { + // fmt.Printf("Слово %d: %s\n", i+1, word) + // } + + // hashTable := ht.NewHashTable(8, 0.95) + + // for i, word := range words { + // fmt.Printf("%d : %s\n", i, word) + // hashTable.Put(word, 1) + // } + + // fmt.Println("\nХеш таблица текста: ") + // hashTable.Print() + + // // fmt.Println("Отсортированные ячейки таблицы: ") + // // hashTable.PrintSort() + + // fmt.Println("\nСамые часто встречающиеся слова: ") + + // // hashTable.PrintMostPopularWords(10) +} diff --git a/stepushovgs/data-structures/source/tests/test_ll/main.go b/stepushovgs/data-structures/source/tests/test_ll/main.go new file mode 100644 index 0000000..3420389 --- /dev/null +++ b/stepushovgs/data-structures/source/tests/test_ll/main.go @@ -0,0 +1,52 @@ +package main + +import ( + "bufio" + "fmt" + "os" + ds "source/pkg/data_struct" + + // rs "source/pkg/resulter" + ll "source/pkg/structures/linked_list" +) + +func isInArr(arr []int, length int, target int) bool { + for i := 0; i < length; i++ { + if arr[i] == target { + return true + } + } + return false +} + +func Razdelitel() { + for i := 0; i < 20; i++ { + fmt.Print("-") + } + fmt.Println() +} + +func pressEnterToContinue() { + fmt.Print("Нажмите Enter для продолжения...") + bufio.NewReader(os.Stdin).ReadBytes('\n') +} + +func main() { + fmt.Println("hello world!") + + head := ll.NewLinkedList() + + for i := 1; i <= 20; i++ { + name := fmt.Sprintf("User_%02d", i) + phone := fmt.Sprintf("Phone_%02d", i) + head.Insert(*ds.NewData(name, phone)) + } + + head.PrintAll() + + head.Delete("User_05") + + head.PrintAll() + + fmt.Println(head.Search("User_07")) +}