2026-04-15 13:49:57 +00:00
|
|
|
{
|
|
|
|
|
"cells": [
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "code",
|
2026-05-22 17:07:06 +00:00
|
|
|
"execution_count": 107,
|
2026-04-15 13:49:57 +00:00
|
|
|
"id": "c533959c",
|
|
|
|
|
"metadata": {},
|
2026-05-05 19:20:24 +00:00
|
|
|
"outputs": [],
|
|
|
|
|
"source": [
|
|
|
|
|
"import LinkedList as ll\n",
|
|
|
|
|
"import HashTable as ht\n",
|
|
|
|
|
"import BinaryTree as bt\n",
|
|
|
|
|
"import time \n",
|
|
|
|
|
"import random as rand\n",
|
2026-05-22 17:07:06 +00:00
|
|
|
"import numpy as np \n",
|
2026-05-05 19:20:24 +00:00
|
|
|
"import csv\n",
|
2026-05-22 17:07:06 +00:00
|
|
|
"import sys\n",
|
|
|
|
|
"import matplotlib.pyplot as plt"
|
2026-05-05 19:20:24 +00:00
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"id": "15cd6183",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"source": [
|
|
|
|
|
"## Данные для обработки"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "code",
|
2026-05-22 17:07:06 +00:00
|
|
|
"execution_count": 108,
|
2026-05-05 19:20:24 +00:00
|
|
|
"id": "88611f78",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"outputs": [],
|
|
|
|
|
"source": [
|
|
|
|
|
"N = 10000\n",
|
2026-05-10 10:00:19 +00:00
|
|
|
"sys.setrecursionlimit(10000) \n",
|
2026-05-05 19:20:24 +00:00
|
|
|
"records_sorted = [(f\"User_{i:05d}\", f\"+7999{i:07d}\") for i in range(N)] \n",
|
|
|
|
|
"records_shuffled = records_sorted.copy()\n",
|
2026-05-10 12:30:37 +00:00
|
|
|
"rand.shuffle(records_shuffled)\n"
|
2026-05-05 19:20:24 +00:00
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"id": "9fd1b8cd",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"source": [
|
2026-05-10 10:00:19 +00:00
|
|
|
"## Исследование для LinkedList"
|
2026-05-05 19:20:24 +00:00
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"id": "083d49d0",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"source": [
|
|
|
|
|
"### Добавление всех элементов произвольного кортежа\n",
|
2026-05-10 10:00:19 +00:00
|
|
|
"- **data_ll_sh** - Структура произвольных данных (только последний замер)\n",
|
|
|
|
|
"- **time_ll_insert_sh** - Замер времени работы 10000 элементов (5 замеров) \n",
|
|
|
|
|
"- **heads_ll_sh** - Массив голов для массив для произвольного массива"
|
2026-05-05 19:20:24 +00:00
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "code",
|
2026-05-22 17:07:06 +00:00
|
|
|
"execution_count": 109,
|
2026-05-05 19:20:24 +00:00
|
|
|
"id": "11634fa4",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"outputs": [],
|
|
|
|
|
"source": [
|
|
|
|
|
"time_ll_insert_sh = [] \n",
|
2026-05-10 10:00:19 +00:00
|
|
|
"heads_ll_sh = []\n",
|
2026-05-05 19:20:24 +00:00
|
|
|
"for n in range(5):\n",
|
|
|
|
|
" head = None\n",
|
|
|
|
|
" data_ll_sh = []\n",
|
|
|
|
|
" start = time.perf_counter()\n",
|
|
|
|
|
" for i in range(N):\n",
|
|
|
|
|
" head = ll.ll_insert(head, records_shuffled[i][0], records_shuffled[i][1])\n",
|
|
|
|
|
" data_ll_sh.append(head)\n",
|
|
|
|
|
" end = time.perf_counter()\n",
|
2026-05-10 10:00:19 +00:00
|
|
|
" heads_ll_sh.append(head)\n",
|
2026-05-05 19:20:24 +00:00
|
|
|
" time_ll_insert_sh.append(end - start)"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"id": "0a5f161e",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"source": [
|
|
|
|
|
"### Добавление всех элементов сортированного кортежа\n",
|
|
|
|
|
"- **data_ll_so** - Структура отсортированных данных (только последний замер)\n",
|
2026-05-10 10:00:19 +00:00
|
|
|
"- **time_ll_insert_so** - Замер времени работы 10000 элементов (5 замеров) \n",
|
|
|
|
|
"- **heads_ll_so** - Массив голов для массив для сортированного массива"
|
2026-05-05 19:20:24 +00:00
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "code",
|
2026-05-22 17:07:06 +00:00
|
|
|
"execution_count": 110,
|
2026-05-05 19:20:24 +00:00
|
|
|
"id": "9eab4641",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"outputs": [],
|
|
|
|
|
"source": [
|
|
|
|
|
"time_ll_insert_so = [] \n",
|
2026-05-10 10:00:19 +00:00
|
|
|
"heads_ll_so = []\n",
|
2026-05-05 19:20:24 +00:00
|
|
|
"for n in range(5):\n",
|
|
|
|
|
" head = None\n",
|
|
|
|
|
" data_ll_so = []\n",
|
|
|
|
|
" start = time.perf_counter()\n",
|
|
|
|
|
" for i in range(N):\n",
|
|
|
|
|
" head = ll.ll_insert(head, records_sorted[i][0], records_sorted[i][1])\n",
|
|
|
|
|
" data_ll_so.append(head)\n",
|
|
|
|
|
" end = time.perf_counter()\n",
|
2026-05-10 10:00:19 +00:00
|
|
|
" heads_ll_so.append(head)\n",
|
2026-05-10 12:30:37 +00:00
|
|
|
" time_ll_insert_so.append(end - start)\n"
|
2026-05-05 19:20:24 +00:00
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"id": "5862d31b",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"source": [
|
|
|
|
|
"### Поиск элементов в произвольном массиве\n",
|
|
|
|
|
"- **time_ll_find_sh** - Време поиска в произвольном массиве (для 5 замеров)\n",
|
|
|
|
|
"- **find_ll_sh** - массив найденных данных в произвольном массиве (только последний замер)"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "code",
|
2026-05-22 17:07:06 +00:00
|
|
|
"execution_count": 111,
|
2026-05-05 19:20:24 +00:00
|
|
|
"id": "aac6cd23",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"outputs": [],
|
|
|
|
|
"source": [
|
|
|
|
|
"time_ll_find_sh = []\n",
|
|
|
|
|
"for n in range(5):\n",
|
|
|
|
|
" find_ll_sh = []\n",
|
|
|
|
|
" start = time.perf_counter()\n",
|
|
|
|
|
" for m in range(100): # замер для 100 случайных узлов \n",
|
|
|
|
|
" i = rand.randint(0, N-1)\n",
|
|
|
|
|
" str_find = records_shuffled[i][0]\n",
|
|
|
|
|
" find_ll_sh.append(ll.ll_find(data_ll_sh[0], str_find))\n",
|
|
|
|
|
" for m in range(10): # недоступные данные\n",
|
|
|
|
|
" str_find = f\"Node_{m}\"\n",
|
|
|
|
|
" find_ll_sh.append(ll.ll_find(data_ll_sh[0], str_find))\n",
|
|
|
|
|
" end = time.perf_counter()\n",
|
2026-05-10 12:30:37 +00:00
|
|
|
" time_ll_find_sh.append(end - start)\n"
|
2026-05-05 19:20:24 +00:00
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"id": "651aac23",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"source": [
|
|
|
|
|
"### Поиск элементов в отсортированном массиве\n",
|
|
|
|
|
"- **time_ll_find_so** - Време поиска в отсортированном массиве (для 5 замеров)\n",
|
|
|
|
|
"- **find_ll_so** - Массив найденных данных в отсортированном массиве (только последний замер)"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "code",
|
2026-05-22 17:07:06 +00:00
|
|
|
"execution_count": 112,
|
2026-05-05 19:20:24 +00:00
|
|
|
"id": "5e5ae537",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"outputs": [],
|
|
|
|
|
"source": [
|
|
|
|
|
"time_ll_find_so = []\n",
|
|
|
|
|
"for n in range(5):\n",
|
|
|
|
|
" find_ll_so = []\n",
|
|
|
|
|
" start = time.perf_counter()\n",
|
|
|
|
|
" for m in range(100): # замер для 100 случайных узлов \n",
|
|
|
|
|
" i = rand.randint(0, N-1)\n",
|
|
|
|
|
" str_find = records_sorted[i][0]\n",
|
|
|
|
|
" find_ll_so.append(ll.ll_find(data_ll_sh[0], str_find))\n",
|
|
|
|
|
" for m in range(10): # недоступные данные \n",
|
|
|
|
|
" str_find = f\"Node_{m}\"\n",
|
|
|
|
|
" find_ll_so.append(ll.ll_find(data_ll_sh[0], str_find))\n",
|
|
|
|
|
" end = time.perf_counter()\n",
|
2026-05-10 12:30:37 +00:00
|
|
|
" time_ll_find_so.append(end - start)\n"
|
2026-05-05 19:20:24 +00:00
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"id": "a1f70be9",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"source": [
|
|
|
|
|
"### Удаление элементов в произвольном массиве\n",
|
|
|
|
|
"- **time_ll_delete_sh** - Време поиска в произвольном массиве (для 5 замеров)"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "code",
|
2026-05-22 17:07:06 +00:00
|
|
|
"execution_count": null,
|
2026-05-05 19:20:24 +00:00
|
|
|
"id": "6cdf8a70",
|
|
|
|
|
"metadata": {},
|
2026-05-10 12:30:37 +00:00
|
|
|
"outputs": [
|
|
|
|
|
{
|
|
|
|
|
"data": {
|
|
|
|
|
"text/plain": [
|
2026-05-22 17:07:06 +00:00
|
|
|
"[0.05640505500014115,\n",
|
|
|
|
|
" 0.038319764000334544,\n",
|
|
|
|
|
" 0.02700047700000141,\n",
|
|
|
|
|
" 0.03155651599990961,\n",
|
|
|
|
|
" 0.03664214699983859]"
|
2026-05-10 12:30:37 +00:00
|
|
|
]
|
|
|
|
|
},
|
2026-05-22 17:07:06 +00:00
|
|
|
"execution_count": 113,
|
2026-05-10 12:30:37 +00:00
|
|
|
"metadata": {},
|
|
|
|
|
"output_type": "execute_result"
|
|
|
|
|
}
|
|
|
|
|
],
|
2026-04-15 13:49:57 +00:00
|
|
|
"source": [
|
2026-05-05 19:20:24 +00:00
|
|
|
"time_ll_delete_sh = []\n",
|
|
|
|
|
"for n in range(5):\n",
|
2026-05-10 10:00:19 +00:00
|
|
|
" current_head = heads_ll_sh[n]\n",
|
|
|
|
|
"\n",
|
2026-05-05 19:20:24 +00:00
|
|
|
" start = time.perf_counter()\n",
|
|
|
|
|
" for m in range(50): \n",
|
|
|
|
|
" i = rand.randint(0, N-1)\n",
|
|
|
|
|
" str_delete = records_shuffled[i][0]\n",
|
2026-05-10 10:00:19 +00:00
|
|
|
" current_head = ll.ll_delete(current_head, str_delete)\n",
|
2026-05-05 19:20:24 +00:00
|
|
|
" end = time.perf_counter()\n",
|
2026-05-10 10:00:19 +00:00
|
|
|
"\n",
|
2026-05-22 17:07:06 +00:00
|
|
|
" time_ll_delete_sh.append(end - start)"
|
2026-05-05 19:20:24 +00:00
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"id": "8d6156e9",
|
|
|
|
|
"metadata": {},
|
2026-05-10 10:00:19 +00:00
|
|
|
"source": [
|
|
|
|
|
"### Удаление элементов в сортированном массиве\n",
|
|
|
|
|
"- **time_ll_delete_so** - Време поиска в произвольном массиве (для 5 замеров)"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "code",
|
2026-05-22 17:07:06 +00:00
|
|
|
"execution_count": null,
|
2026-05-10 10:00:19 +00:00
|
|
|
"id": "575e375c",
|
|
|
|
|
"metadata": {},
|
2026-05-10 12:30:37 +00:00
|
|
|
"outputs": [
|
|
|
|
|
{
|
|
|
|
|
"data": {
|
|
|
|
|
"text/plain": [
|
2026-05-22 17:07:06 +00:00
|
|
|
"[0.029801202000271587,\n",
|
|
|
|
|
" 0.018522201000450877,\n",
|
|
|
|
|
" 0.01715149899973767,\n",
|
|
|
|
|
" 0.018071766000502976,\n",
|
|
|
|
|
" 0.0195203829998718]"
|
2026-05-10 12:30:37 +00:00
|
|
|
]
|
|
|
|
|
},
|
2026-05-22 17:07:06 +00:00
|
|
|
"execution_count": 114,
|
2026-05-10 12:30:37 +00:00
|
|
|
"metadata": {},
|
|
|
|
|
"output_type": "execute_result"
|
|
|
|
|
}
|
|
|
|
|
],
|
2026-05-10 10:00:19 +00:00
|
|
|
"source": [
|
|
|
|
|
"time_ll_delete_so = []\n",
|
|
|
|
|
"for n in range(5):\n",
|
|
|
|
|
" current_head = heads_ll_so[n]\n",
|
|
|
|
|
"\n",
|
|
|
|
|
" start = time.perf_counter()\n",
|
|
|
|
|
" for m in range(50): \n",
|
|
|
|
|
" i = rand.randint(0, N-1)\n",
|
|
|
|
|
" str_delete = records_sorted[i][0]\n",
|
|
|
|
|
" current_head = ll.ll_delete(current_head, str_delete)\n",
|
|
|
|
|
" end = time.perf_counter()\n",
|
|
|
|
|
"\n",
|
2026-05-22 17:07:06 +00:00
|
|
|
" time_ll_delete_so.append(end - start)"
|
2026-05-10 10:00:19 +00:00
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"id": "9a95a40b",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"source": [
|
|
|
|
|
"## Исследование BinaryTree"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"id": "54c92d21",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"source": [
|
|
|
|
|
"### Добавление всех элементов произвольного кортежа\n",
|
|
|
|
|
"- **data_bt_sh** - Структура произвольных данных (только последний замер)\n",
|
|
|
|
|
"- **time_bt_insert_sh** - Замер времени работы 10000 элементов (5 замеров) \n",
|
|
|
|
|
"- **heads_bt_sh** - Массив голов для массив для произвольного массива"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "code",
|
2026-05-22 17:07:06 +00:00
|
|
|
"execution_count": 115,
|
2026-05-10 10:00:19 +00:00
|
|
|
"id": "939aa900",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"outputs": [],
|
|
|
|
|
"source": [
|
|
|
|
|
"time_bt_insert_sh = [] \n",
|
|
|
|
|
"heads_bt_sh = []\n",
|
|
|
|
|
"for n in range(5):\n",
|
|
|
|
|
" head = None\n",
|
|
|
|
|
" data_bt_sh = []\n",
|
|
|
|
|
" start = time.perf_counter()\n",
|
|
|
|
|
" for i in range(N):\n",
|
|
|
|
|
" head = bt.bst_insert(head, records_shuffled[i][0], records_shuffled[i][1])\n",
|
|
|
|
|
" data_bt_sh.append(head)\n",
|
|
|
|
|
" end = time.perf_counter()\n",
|
|
|
|
|
" heads_bt_sh.append(head)\n",
|
2026-05-10 12:30:37 +00:00
|
|
|
" time_bt_insert_sh.append(end - start)\n"
|
2026-05-10 10:00:19 +00:00
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"id": "e91b5893",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"source": [
|
|
|
|
|
"### Добавление всех элементов сортированного кортежа\n",
|
|
|
|
|
"- **data_bt_so** - Структура сортированных данных (только последний замер)\n",
|
|
|
|
|
"- **time_bt_insert_so** - Замер времени работы 10000 элементов (5 замеров) \n",
|
|
|
|
|
"- **heads_bt_so** - Массив голов для массив для сортированного массива"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "code",
|
2026-05-22 17:07:06 +00:00
|
|
|
"execution_count": 116,
|
2026-05-10 10:00:19 +00:00
|
|
|
"id": "d17b8108",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"outputs": [],
|
|
|
|
|
"source": [
|
|
|
|
|
"time_bt_insert_so = [] \n",
|
|
|
|
|
"heads_bt_so = []\n",
|
|
|
|
|
"for n in range(5):\n",
|
|
|
|
|
" head = None\n",
|
|
|
|
|
" data_bt_so = []\n",
|
|
|
|
|
" start = time.perf_counter()\n",
|
2026-05-14 10:44:13 +00:00
|
|
|
" #head = bt.bst_insert(head, records_sorted[i][0],records_sorted[i][1])\n",
|
2026-05-10 10:00:19 +00:00
|
|
|
" head = bt.bst_insert_sort(records_sorted, 0, len(records_sorted) - 1)\n",
|
|
|
|
|
" data_bt_so.append(head)\n",
|
|
|
|
|
" end = time.perf_counter()\n",
|
|
|
|
|
" heads_bt_so.append(head)\n",
|
2026-05-10 12:30:37 +00:00
|
|
|
" time_bt_insert_so.append(end - start)\n"
|
2026-05-10 10:00:19 +00:00
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"id": "1e8a3f9e",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"source": [
|
|
|
|
|
"### Поиск элементов в произвольном массиве\n",
|
|
|
|
|
"- **time_bt_find_sh** - Време поиска в произвольном массиве (для 5 замеров)\n",
|
|
|
|
|
"- **find_bt_sh** - массив найденных данных в произвольном массиве (только последний замер)"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "code",
|
2026-05-22 17:07:06 +00:00
|
|
|
"execution_count": 117,
|
2026-05-10 10:00:19 +00:00
|
|
|
"id": "4352b11d",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"outputs": [],
|
|
|
|
|
"source": [
|
|
|
|
|
"time_bt_find_sh = []\n",
|
|
|
|
|
"for n in range(5):\n",
|
|
|
|
|
" find_bt_sh = []\n",
|
|
|
|
|
" start = time.perf_counter()\n",
|
|
|
|
|
" for m in range(100): # замер для 100 случайных узлов \n",
|
|
|
|
|
" i = rand.randint(0, N-1)\n",
|
|
|
|
|
" str_find = records_shuffled[i][0]\n",
|
|
|
|
|
" find_bt_sh.append(bt.bst_find(data_bt_sh[0], str_find))\n",
|
|
|
|
|
" for m in range(10): # недоступные данные\n",
|
|
|
|
|
" str_find = f\"Node_{m}\"\n",
|
|
|
|
|
" find_bt_sh.append(bt.bst_find(data_bt_sh[0], str_find))\n",
|
|
|
|
|
" end = time.perf_counter()\n",
|
2026-05-10 12:30:37 +00:00
|
|
|
" time_bt_find_sh.append(end - start)\n"
|
2026-05-10 10:00:19 +00:00
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"id": "8db5208b",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"source": [
|
|
|
|
|
"### Поиск элементов в отсортированном массиве\n",
|
|
|
|
|
"- **time_bt_find_so** - Време поиска в сортированном массиве (для 5 замеров)\n",
|
|
|
|
|
"- **find_bt_so** - массив найденных данных в сортированном массиве (только последний замер)"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "code",
|
2026-05-22 17:07:06 +00:00
|
|
|
"execution_count": 118,
|
2026-05-10 10:00:19 +00:00
|
|
|
"id": "7941e689",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"outputs": [],
|
|
|
|
|
"source": [
|
|
|
|
|
"time_bt_find_so = []\n",
|
|
|
|
|
"for n in range(5):\n",
|
|
|
|
|
" find_bt_so = []\n",
|
|
|
|
|
" start = time.perf_counter()\n",
|
|
|
|
|
" for m in range(100): # замер для 100 случайных узлов \n",
|
|
|
|
|
" i = rand.randint(0, N-1)\n",
|
|
|
|
|
" str_find = records_sorted[i][0]\n",
|
|
|
|
|
" find_bt_so.append(bt.bst_find(data_bt_so[0], str_find))\n",
|
|
|
|
|
" for m in range(10): # недоступные данные\n",
|
|
|
|
|
" str_find = f\"Node_{m}\"\n",
|
|
|
|
|
" find_bt_so.append(bt.bst_find(data_bt_so[0], str_find))\n",
|
|
|
|
|
" end = time.perf_counter()\n",
|
2026-05-10 12:30:37 +00:00
|
|
|
" time_bt_find_so.append(end - start)\n"
|
2026-05-10 10:00:19 +00:00
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"id": "ffbe3dfe",
|
|
|
|
|
"metadata": {},
|
2026-05-05 19:20:24 +00:00
|
|
|
"source": [
|
|
|
|
|
"### Удаление элементов в произвольном массиве\n",
|
2026-05-10 10:00:19 +00:00
|
|
|
"- **time_bt_delete_sh** - Време поиска в произвольном массиве (для 5 замеров)"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "code",
|
2026-05-22 17:07:06 +00:00
|
|
|
"execution_count": 119,
|
2026-05-10 10:00:19 +00:00
|
|
|
"id": "4043a9dc",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"outputs": [],
|
|
|
|
|
"source": [
|
|
|
|
|
"time_bt_delete_sh = []\n",
|
|
|
|
|
"for n in range(5):\n",
|
|
|
|
|
" current_head = heads_bt_sh[n]\n",
|
|
|
|
|
"\n",
|
|
|
|
|
" start = time.perf_counter()\n",
|
|
|
|
|
" for m in range(50): \n",
|
|
|
|
|
" i = rand.randint(0, N-1)\n",
|
|
|
|
|
" str_delete = records_shuffled[i][0]\n",
|
|
|
|
|
" current_head = bt.bst_delete(current_head, str_delete)\n",
|
|
|
|
|
" end = time.perf_counter()\n",
|
|
|
|
|
"\n",
|
|
|
|
|
" time_bt_delete_sh.append(end - start)"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"id": "7db94391",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"source": [
|
|
|
|
|
"### Удаление элементов в сортированном массиве\n",
|
|
|
|
|
"- **time_bt_delete_so** - Време поиска в произвольном массиве (для 5 замеров)"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "code",
|
2026-05-22 17:07:06 +00:00
|
|
|
"execution_count": 120,
|
2026-05-10 10:00:19 +00:00
|
|
|
"id": "7ab6136c",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"outputs": [],
|
|
|
|
|
"source": [
|
|
|
|
|
"time_bt_delete_so = []\n",
|
|
|
|
|
"for n in range(5):\n",
|
|
|
|
|
" current_head = heads_bt_so[n]\n",
|
|
|
|
|
"\n",
|
|
|
|
|
" start = time.perf_counter()\n",
|
|
|
|
|
" for m in range(50): \n",
|
|
|
|
|
" i = rand.randint(0, N-1)\n",
|
|
|
|
|
" str_delete = records_sorted[i][0]\n",
|
|
|
|
|
" current_head = bt.bst_delete(current_head, str_delete)\n",
|
|
|
|
|
" end = time.perf_counter()\n",
|
|
|
|
|
"\n",
|
|
|
|
|
" time_bt_delete_so.append(end - start)"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"id": "0bf5b406",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"source": [
|
|
|
|
|
"## Исследование HashTable"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"id": "75586bbc",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"source": [
|
|
|
|
|
"### Добавление всех элементов произвольного кортежа\n",
|
|
|
|
|
"- **data_ht_sh** - Структура произвольных данных (только последний замер)\n",
|
|
|
|
|
"- **time_ht_insert_sh** - Замер времени работы 10000 элементов (5 замеров) \n",
|
|
|
|
|
"- **heads_ht_sh** - Массив голов для массив для произвольного массива"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "code",
|
2026-05-22 17:07:06 +00:00
|
|
|
"execution_count": 121,
|
2026-05-10 10:00:19 +00:00
|
|
|
"id": "cb1788d1",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"outputs": [],
|
|
|
|
|
"source": [
|
|
|
|
|
"time_ht_insert_sh = [] \n",
|
|
|
|
|
"for n in range(5):\n",
|
2026-05-14 10:44:13 +00:00
|
|
|
" buckets = ht.create_ht(size = N * 4)\n",
|
2026-05-10 10:00:19 +00:00
|
|
|
" data_ht_sh = []\n",
|
|
|
|
|
" start = time.perf_counter()\n",
|
|
|
|
|
" for i in range(N):\n",
|
|
|
|
|
" buckets = ht.ht_insert(buckets, records_shuffled[i][0], records_shuffled[i][1])\n",
|
|
|
|
|
" data_ht_sh.append(buckets)\n",
|
|
|
|
|
" end = time.perf_counter()\n",
|
2026-05-10 12:30:37 +00:00
|
|
|
" time_ht_insert_sh.append(end - start)\n"
|
2026-05-10 10:00:19 +00:00
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"id": "6bb2aa16",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"source": [
|
|
|
|
|
"### Добавление всех элементов сортированного кортежа\n",
|
|
|
|
|
"- **data_ht_so** - Структура сортированных данных (только последний замер)\n",
|
|
|
|
|
"- **time_ht_insert_so** - Замер времени работы 10000 элементов (5 замеров) \n",
|
|
|
|
|
"- **heads_ht_so** - Массив голов для массив для сортированного массива"
|
2026-04-15 13:49:57 +00:00
|
|
|
]
|
2026-05-10 10:00:19 +00:00
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "code",
|
2026-05-22 17:07:06 +00:00
|
|
|
"execution_count": 122,
|
2026-05-10 10:00:19 +00:00
|
|
|
"id": "4cb524e4",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"outputs": [],
|
|
|
|
|
"source": [
|
|
|
|
|
"time_ht_insert_so = [] \n",
|
|
|
|
|
"for n in range(5):\n",
|
2026-05-14 10:44:13 +00:00
|
|
|
" buckets = ht.create_ht(size = N * 4)\n",
|
2026-05-10 10:00:19 +00:00
|
|
|
" data_ht_so = []\n",
|
|
|
|
|
" start = time.perf_counter()\n",
|
|
|
|
|
" for i in range(N):\n",
|
|
|
|
|
" buckets = ht.ht_insert(buckets, records_sorted[i][0], records_sorted[i][1])\n",
|
|
|
|
|
" data_ht_so.append(buckets)\n",
|
|
|
|
|
" end = time.perf_counter()\n",
|
2026-05-10 12:30:37 +00:00
|
|
|
" time_ht_insert_so.append(end - start)\n"
|
2026-05-10 10:00:19 +00:00
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"id": "9d79016f",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"source": [
|
|
|
|
|
"### Поиск элементов в произвольном массиве\n",
|
|
|
|
|
"- **time_ht_find_sh** - Време поиска в произвольном массиве (для 5 замеров)\n",
|
|
|
|
|
"- **find_ht_sh** - массив найденных данных в произвольном массиве (только последний замер)"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "code",
|
2026-05-22 17:07:06 +00:00
|
|
|
"execution_count": 123,
|
2026-05-10 10:00:19 +00:00
|
|
|
"id": "45cec102",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"outputs": [],
|
2026-05-10 12:30:37 +00:00
|
|
|
"source": [
|
|
|
|
|
"time_ht_find_sh = []\n",
|
|
|
|
|
"for n in range(5):\n",
|
|
|
|
|
" find_ht_sh = []\n",
|
|
|
|
|
" start = time.perf_counter()\n",
|
|
|
|
|
" for m in range(100): # замер для 100 случайных узлов \n",
|
|
|
|
|
" i = rand.randint(0, N-1)\n",
|
|
|
|
|
" str_find = records_shuffled[i][0]\n",
|
|
|
|
|
" find_ht_sh.append(ht.ht_find(data_ht_sh[0], str_find))\n",
|
|
|
|
|
" for m in range(10): # недоступные данные\n",
|
|
|
|
|
" str_find = f\"Node_{m}\"\n",
|
|
|
|
|
" find_ht_sh.append(ht.ht_find(data_ht_sh[0], str_find))\n",
|
|
|
|
|
" end = time.perf_counter()\n",
|
|
|
|
|
" time_ht_find_sh.append(end - start)\n"
|
|
|
|
|
]
|
2026-05-10 10:00:19 +00:00
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"id": "8f11dbad",
|
|
|
|
|
"metadata": {},
|
2026-05-10 12:30:37 +00:00
|
|
|
"source": [
|
|
|
|
|
"### Поиск элементов в отсортированном массиве\n",
|
|
|
|
|
"- **time_ht_find_so** - Време поиска в сортированном массиве (для 5 замеров)\n",
|
|
|
|
|
"- **find_ht_so** - массив найденных данных в сортированном массиве (только последний замер)"
|
|
|
|
|
]
|
2026-05-10 10:00:19 +00:00
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "code",
|
2026-05-22 17:07:06 +00:00
|
|
|
"execution_count": 124,
|
2026-05-10 10:00:19 +00:00
|
|
|
"id": "19e7a19a",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"outputs": [],
|
2026-05-10 12:30:37 +00:00
|
|
|
"source": [
|
|
|
|
|
"time_ht_find_so = []\n",
|
|
|
|
|
"for n in range(5):\n",
|
|
|
|
|
" find_ht_so = []\n",
|
|
|
|
|
" start = time.perf_counter()\n",
|
|
|
|
|
" for m in range(100): # замер для 100 случайных узлов \n",
|
|
|
|
|
" i = rand.randint(0, N-1)\n",
|
|
|
|
|
" str_find = records_shuffled[i][0]\n",
|
|
|
|
|
" find_ht_so.append(ht.ht_find(data_ht_so[0], str_find))\n",
|
|
|
|
|
" for m in range(10): # недоступные данные\n",
|
|
|
|
|
" str_find = f\"Node_{m}\"\n",
|
|
|
|
|
" find_ht_so.append(ht.ht_find(data_ht_so[0], str_find))\n",
|
|
|
|
|
" end = time.perf_counter()\n",
|
|
|
|
|
" time_ht_find_so.append(end - start)\n"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"id": "e39fa07c",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"source": [
|
|
|
|
|
"### Удаление элементов в произвольном массиве\n",
|
|
|
|
|
"- **time_ht_delete_sh** - Време поиска в произвольном массиве (для 5 замеров)"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "code",
|
2026-05-22 17:07:06 +00:00
|
|
|
"execution_count": 125,
|
2026-05-10 12:30:37 +00:00
|
|
|
"id": "90a9613d",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"outputs": [],
|
|
|
|
|
"source": [
|
|
|
|
|
"time_ht_delete_sh = []\n",
|
|
|
|
|
"for n in range(5):\n",
|
|
|
|
|
" current_head = data_ht_sh[0]\n",
|
|
|
|
|
"\n",
|
|
|
|
|
" start = time.perf_counter()\n",
|
|
|
|
|
" for m in range(50): \n",
|
|
|
|
|
" i = rand.randint(0, N-1)\n",
|
|
|
|
|
" str_delete = records_shuffled[i][0]\n",
|
|
|
|
|
" current_head = ht.ht_delete(current_head, str_delete)\n",
|
|
|
|
|
" end = time.perf_counter()\n",
|
|
|
|
|
" time_ht_delete_sh.append(end - start)"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"id": "eb9fcf01",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"source": [
|
|
|
|
|
"### Удаление элементов в сортированном массиве\n",
|
|
|
|
|
"- **time_ht_delete_so** - Време поиска в произвольном массиве (для 5 замеров)"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "code",
|
2026-05-22 17:07:06 +00:00
|
|
|
"execution_count": 126,
|
2026-05-10 12:30:37 +00:00
|
|
|
"id": "dfe01fe5",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"outputs": [],
|
|
|
|
|
"source": [
|
|
|
|
|
"time_ht_delete_so = []\n",
|
|
|
|
|
"for n in range(5):\n",
|
|
|
|
|
" current_head = data_ht_so[0]\n",
|
|
|
|
|
"\n",
|
|
|
|
|
" start = time.perf_counter()\n",
|
|
|
|
|
" for m in range(50): \n",
|
|
|
|
|
" i = rand.randint(0, N-1)\n",
|
|
|
|
|
" str_delete = records_shuffled[i][0]\n",
|
|
|
|
|
" current_head = ht.ht_delete(current_head, str_delete)\n",
|
|
|
|
|
" end = time.perf_counter()\n",
|
|
|
|
|
" time_ht_delete_so.append(end - start)"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"id": "c0ce9bbd",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"source": [
|
|
|
|
|
"## Создание CSV файла\n",
|
|
|
|
|
"Запишем все рание полученные данные в CSV файл"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "code",
|
2026-05-22 17:07:06 +00:00
|
|
|
"execution_count": 127,
|
2026-05-10 12:30:37 +00:00
|
|
|
"id": "ce249772",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"outputs": [],
|
|
|
|
|
"source": [
|
|
|
|
|
"results = [\n",
|
|
|
|
|
" [\"Структура\", \"Режим\", \"Операция\", \"Время (сек)\"],\n",
|
|
|
|
|
" [\"LinkedList\", \"случайный\", \"вставка\", sum(time_ll_insert_sh)/len(time_ll_insert_sh)],\n",
|
|
|
|
|
" [\"LinkedList\", \"сортированный\", \"вставка\", sum(time_ll_insert_so)/len(time_ll_insert_so)],\n",
|
|
|
|
|
" [\"LinkedList\", \"случайный\", \"поиск\", sum(time_ll_find_sh)/len(time_ll_find_sh)],\n",
|
|
|
|
|
" [\"LinkedList\", \"сортированный\", \"поиск\", sum(time_ll_find_so)/len(time_ll_find_so)],\n",
|
|
|
|
|
" [\"LinkedList\", \"случайный\", \"удаление\", sum(time_ll_delete_sh)/len(time_ll_delete_sh)],\n",
|
|
|
|
|
" [\"LinkedList\", \"сортированный\", \"удаление\", sum(time_ll_delete_so)/len(time_ll_delete_so)],\n",
|
|
|
|
|
" [\"HashTable\", \"случайный\", \"вставка\", sum(time_ht_insert_sh)/len(time_ht_insert_sh)],\n",
|
|
|
|
|
" [\"HashTable\", \"сортированный\", \"вставка\", sum(time_ht_insert_so)/len(time_ht_insert_so)],\n",
|
|
|
|
|
" [\"HashTable\", \"случайный\", \"поиск\", sum(time_ht_find_sh)/len(time_ht_find_sh)],\n",
|
|
|
|
|
" [\"HashTable\", \"сортированный\", \"поиск\", sum(time_ht_find_so)/len(time_ht_find_so)],\n",
|
|
|
|
|
" [\"HashTable\", \"случайный\", \"удаление\", sum(time_ht_delete_sh)/len(time_ht_delete_sh)],\n",
|
|
|
|
|
" [\"HashTable\", \"сортированный\", \"удаление\", sum(time_ht_delete_so)/len(time_ht_delete_so)],\n",
|
|
|
|
|
" [\"BinaryTree\", \"случайный\", \"вставка\", sum(time_bt_insert_sh)/len(time_bt_insert_sh)],\n",
|
|
|
|
|
" [\"BinaryTree\", \"сортированный\", \"вставка\", sum(time_bt_insert_so)/len(time_bt_insert_so)],\n",
|
|
|
|
|
" [\"BinaryTree\", \"случайный\", \"поиск\", sum(time_bt_find_sh)/len(time_bt_find_sh)],\n",
|
|
|
|
|
" [\"BinaryTree\", \"сортированный\", \"поиск\", sum(time_bt_find_so)/len(time_bt_find_so)],\n",
|
|
|
|
|
" [\"BinaryTree\", \"случайный\", \"удаление\", sum(time_bt_delete_sh)/len(time_bt_delete_sh)],\n",
|
|
|
|
|
" [\"BinaryTree\", \"сортированный\", \"удаление\", sum(time_bt_delete_so)/len(time_bt_delete_so)],\n",
|
|
|
|
|
"]\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"with open(\"results.csv\", \"w\", newline=\"\") as f:\n",
|
|
|
|
|
" writer = csv.writer(f)\n",
|
|
|
|
|
" writer.writerows(results)"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"id": "69023ea2",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"source": [
|
|
|
|
|
"## Построение графиков и сравнение данных между собой\n"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "code",
|
2026-05-22 17:07:06 +00:00
|
|
|
"execution_count": 128,
|
|
|
|
|
"id": "09467dd7",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"outputs": [],
|
|
|
|
|
"source": [
|
|
|
|
|
"t_ll = [sum(time_ll_insert_sh)/len(time_ll_insert_sh), sum(time_ll_insert_so)/len(time_ll_insert_so), sum(time_ll_find_sh)/len(time_ll_find_sh), sum(time_ll_find_so)/len(time_ll_find_so), sum(time_ll_delete_sh)/len(time_ll_delete_sh), sum(time_ll_delete_so)/len(time_ll_delete_so)]\n",
|
|
|
|
|
"t_ht = [sum(time_ht_insert_sh)/len(time_ht_insert_sh), sum(time_ht_insert_so)/len(time_ht_insert_so), sum(time_ht_find_sh)/len(time_ht_find_sh), sum(time_ht_find_so)/len(time_ht_find_so), sum(time_ht_delete_sh)/len(time_ht_delete_sh), sum(time_ht_delete_so)/len(time_ht_delete_so)]\n",
|
|
|
|
|
"t_bt = [sum(time_bt_insert_sh)/len(time_bt_insert_sh), sum(time_bt_insert_so)/len(time_bt_insert_so), sum(time_bt_find_sh)/len(time_bt_find_sh), sum(time_bt_find_so)/len(time_bt_find_so), sum(time_bt_delete_sh)/len(time_bt_delete_sh), sum(time_bt_delete_so)/len(time_bt_delete_so)]\n",
|
|
|
|
|
"categoris = [\"рандомное добавление\", \"отсортированное добавление\", \"рандомный поиск\", \"отсортированный поиск\", \"рандомное удаление\", \"отсортированное удаление\"]\n",
|
|
|
|
|
"n = np.linspace(1,5, 5)"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"id": "823d083c",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"source": [
|
|
|
|
|
"### Графики 5 замеров"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "code",
|
|
|
|
|
"execution_count": 131,
|
|
|
|
|
"id": "bdb0dfda",
|
2026-05-10 12:30:37 +00:00
|
|
|
"metadata": {},
|
|
|
|
|
"outputs": [
|
|
|
|
|
{
|
|
|
|
|
"data": {
|
2026-05-22 17:07:06 +00:00
|
|
|
"image/png": "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
|
2026-05-10 12:30:37 +00:00
|
|
|
"text/plain": [
|
2026-05-22 17:07:06 +00:00
|
|
|
"<Figure size 2000x1500 with 6 Axes>"
|
2026-05-10 12:30:37 +00:00
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"output_type": "display_data"
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"source": [
|
2026-05-22 17:07:06 +00:00
|
|
|
"plt.figure(\"Графики изначальных замеров\", figsize = (20,15))\n",
|
2026-05-10 12:30:37 +00:00
|
|
|
"\n",
|
2026-05-22 17:07:06 +00:00
|
|
|
"plt.subplot(3,2,1)\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"plt.scatter(n, time_ll_insert_sh, color = \"#88D94C\", label = \"LinkedList\")\n",
|
|
|
|
|
"plt.scatter(n, time_bt_insert_sh, color = \"#FF43A4\", label = \"BinaryTree\")\n",
|
|
|
|
|
"plt.scatter(n, time_ht_insert_sh, color = \"#EEDC82\", label = \"HashTable\")\n",
|
|
|
|
|
"plt.axhline(t_ll[0], color = \"#88D94C\", linestyle = \"--\", label = f\"Среднее для LinkedList = {t_ll[0]:.6f}\")\n",
|
|
|
|
|
"plt.axhline(t_bt[0], color = \"#FF43A4\", linestyle = \"--\", label = f\"Среднее для BinaryTree = {t_bt[0]:.6f}\")\n",
|
|
|
|
|
"plt.axhline(t_ht[0], color = \"#EEDC82\", linestyle = \"--\", label = f\"Среднее для HashTable = {t_ht[0]:.6f}\")\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"plt.legend()\n",
|
|
|
|
|
"plt.title(f\"Время добавление случайных данных\")\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"plt.ylabel(\"Время(сек)\")\n",
|
|
|
|
|
"plt.xlabel(\"Попытки\")\n",
|
|
|
|
|
"plt.xticks(np.arange(1, 6, 1))\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"plt.grid(alpha = 0.5, linestyle = \"--\")\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"plt.subplot(3,2,2)\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"plt.scatter(n, time_ll_insert_so, color = \"#88D94C\", label = \"LinkedList\")\n",
|
|
|
|
|
"plt.scatter(n, time_bt_insert_so, color = \"#FF43A4\", label = \"BinaryTree\")\n",
|
|
|
|
|
"plt.scatter(n, time_ht_insert_so, color = \"#EEDC82\", label = \"HashTable\")\n",
|
|
|
|
|
"plt.axhline(t_ll[1], color = \"#88D94C\", linestyle = \"--\", label = f\"Среднее для LinkedList = {t_ll[1]:.6f}\")\n",
|
|
|
|
|
"plt.axhline(t_bt[1], color = \"#FF43A4\", linestyle = \"--\", label = f\"Среднее для BinaryTree = {t_bt[1]:.6f}\")\n",
|
|
|
|
|
"plt.axhline(t_ht[1], color = \"#EEDC82\", linestyle = \"--\", label = f\"Среднее для HashTable = {t_ht[1]:.6f}\")\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"plt.legend()\n",
|
|
|
|
|
"plt.title(f\"Время добавление сортированных данных\")\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"plt.ylabel(\"Время(сек)\")\n",
|
|
|
|
|
"plt.xlabel(\"Попытки\")\n",
|
|
|
|
|
"plt.xticks(np.arange(1, 6, 1))\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"plt.grid(alpha = 0.5, linestyle = \"--\")\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"plt.subplot(3,2,3)\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"plt.scatter(n, time_ll_find_sh, color = \"#88D94C\", label = \"LinkedList\")\n",
|
|
|
|
|
"plt.scatter(n, time_bt_find_sh, color = \"#FF43A4\", label = \"BinaryTree\")\n",
|
|
|
|
|
"plt.scatter(n, time_ht_find_sh, color = \"#EEDC82\", label = \"HashTable\")\n",
|
|
|
|
|
"plt.axhline(t_ll[2], color = \"#88D94C\", linestyle = \"--\", label = f\"Среднее для LinkedList = {t_ll[2]:.6f}\")\n",
|
|
|
|
|
"plt.axhline(t_bt[2], color = \"#FF43A4\", linestyle = \"--\", label = f\"Среднее для BinaryTree = {t_bt[2]:.6f}\")\n",
|
|
|
|
|
"plt.axhline(t_ht[2], color = \"#EEDC82\", linestyle = \"--\", label = f\"Среднее для HashTable = {t_ht[2]:.6f}\")\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"plt.legend()\n",
|
|
|
|
|
"plt.title(f\"Время поиска случайных данных\")\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"plt.ylabel(\"Время(сек)\")\n",
|
|
|
|
|
"plt.xlabel(\"Попытки\")\n",
|
|
|
|
|
"plt.xticks(np.arange(1, 6, 1))\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"plt.grid(alpha = 0.5, linestyle = \"--\")\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"plt.subplot(3,2,4)\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"plt.scatter(n, time_ll_find_so, color = \"#88D94C\", label = \"LinkedList\")\n",
|
|
|
|
|
"plt.scatter(n, time_bt_find_so, color = \"#FF43A4\", label = \"BinaryTree\")\n",
|
|
|
|
|
"plt.scatter(n, time_ht_find_so, color = \"#EEDC82\", label = \"HashTable\")\n",
|
|
|
|
|
"plt.axhline(t_ll[3], color = \"#88D94C\", linestyle = \"--\", label = f\"Среднее для LinkedList = {t_ll[3]:.6f}\")\n",
|
|
|
|
|
"plt.axhline(t_bt[3], color = \"#FF43A4\", linestyle = \"--\", label = f\"Среднее для BinaryTree = {t_bt[3]:.6f}\")\n",
|
|
|
|
|
"plt.axhline(t_ht[3], color = \"#EEDC82\", linestyle = \"--\", label = f\"Среднее для HashTable = {t_ht[3]:.6f}\")\n",
|
2026-05-10 12:30:37 +00:00
|
|
|
"\n",
|
2026-05-22 17:07:06 +00:00
|
|
|
"plt.legend()\n",
|
|
|
|
|
"plt.title(f\"Время поиска сортированных данных\")\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"plt.ylabel(\"Время(сек)\")\n",
|
|
|
|
|
"plt.xlabel(\"Попытки\")\n",
|
|
|
|
|
"plt.xticks(np.arange(1, 6, 1))\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"plt.grid(alpha = 0.5, linestyle = \"--\")\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"plt.subplot(3,2,5)\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"plt.scatter(n, time_ll_delete_sh, color = \"#88D94C\", label = \"LinkedList\")\n",
|
|
|
|
|
"plt.scatter(n, time_bt_delete_sh, color = \"#FF43A4\", label = \"BinaryTree\")\n",
|
|
|
|
|
"plt.scatter(n, time_ht_delete_sh, color = \"#EEDC82\", label = \"HashTable\")\n",
|
|
|
|
|
"plt.axhline(t_ll[4], color = \"#88D94C\", linestyle = \"--\", label = f\"Среднее для LinkedList = {t_ll[4]:.6f}\")\n",
|
|
|
|
|
"plt.axhline(t_bt[4], color = \"#FF43A4\", linestyle = \"--\", label = f\"Среднее для BinaryTree = {t_bt[4]:.6f}\")\n",
|
|
|
|
|
"plt.axhline(t_ht[4], color = \"#EEDC82\", linestyle = \"--\", label = f\"Среднее для HashTable = {t_ht[4]:.6f}\")\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"plt.legend()\n",
|
|
|
|
|
"plt.title(f\"Время удаления для случайных данных\")\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"plt.ylabel(\"Время(сек)\")\n",
|
|
|
|
|
"plt.xlabel(\"Попытки\")\n",
|
|
|
|
|
"plt.xticks(np.arange(1, 6, 1))\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"plt.grid(alpha = 0.5, linestyle = \"--\")\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"plt.subplot(3,2,6)\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"plt.scatter(n, time_ll_delete_so, color = \"#88D94C\", label = \"LinkedList\")\n",
|
|
|
|
|
"plt.scatter(n, time_bt_delete_so, color = \"#FF43A4\", label = \"BinaryTree\")\n",
|
|
|
|
|
"plt.scatter(n, time_ht_delete_so, color = \"#EEDC82\", label = \"HashTable\")\n",
|
|
|
|
|
"plt.axhline(t_ll[5], color = \"#88D94C\", linestyle = \"--\", label = f\"Среднее для LinkedList = {t_ll[5]:.6f}\")\n",
|
|
|
|
|
"plt.axhline(t_bt[5], color = \"#FF43A4\", linestyle = \"--\", label = f\"Среднее для BinaryTree = {t_bt[5]:.6f}\")\n",
|
|
|
|
|
"plt.axhline(t_ht[5], color = \"#EEDC82\", linestyle = \"--\", label = f\"Среднее для HashTable = {t_ht[5]:.6f}\")\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"plt.legend()\n",
|
|
|
|
|
"plt.title(f\"Время удаления для сортированных данных\")\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"plt.ylabel(\"Время(сек)\")\n",
|
|
|
|
|
"plt.xlabel(\"Попытки\")\n",
|
|
|
|
|
"plt.xticks(np.arange(1, 6, 1))\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"plt.grid(alpha = 0.5, linestyle = \"--\")\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"plt.savefig('analysis.png')\n",
|
|
|
|
|
"plt.tight_layout() \n",
|
|
|
|
|
"plt.show()"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"id": "2076283d",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"source": [
|
|
|
|
|
"### Сравнение усреднённых данных"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "code",
|
|
|
|
|
"execution_count": 130,
|
|
|
|
|
"id": "d06c4bb0",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"outputs": [
|
|
|
|
|
{
|
|
|
|
|
"data": {
|
|
|
|
|
"image/png": "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
|
|
|
|
|
"text/plain": [
|
|
|
|
|
"<Figure size 2000x1500 with 9 Axes>"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"output_type": "display_data"
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"source": [
|
|
|
|
|
"plt.figure(\"Усреднённые графики\", figsize = (20,15))\n",
|
2026-05-10 12:30:37 +00:00
|
|
|
"\n",
|
|
|
|
|
"plt.subplot(3,3,1)\n",
|
2026-05-22 17:07:06 +00:00
|
|
|
"plt.bar(categoris[0], t_ll[0], color = \"#EEDC82\")\n",
|
|
|
|
|
"plt.bar(categoris[1], t_ll[1], color = \"#88D94C\")\n",
|
2026-05-10 12:30:37 +00:00
|
|
|
"\n",
|
|
|
|
|
"plt.title(f\"Время добавление для LinkedList\")\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"plt.ylabel(\"время работы(секунды)\")\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"plt.subplot(3,3,2)\n",
|
2026-05-22 17:07:06 +00:00
|
|
|
"plt.bar(categoris[2], t_ll[2], color = \"#EEDC82\")\n",
|
|
|
|
|
"plt.bar(categoris[3], t_ll[3], color = \"#88D94C\")\n",
|
2026-05-10 12:30:37 +00:00
|
|
|
"\n",
|
|
|
|
|
"plt.title(f\"Время поиска элементов в LinkedList\")\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"plt.ylabel(\"время работы(секунды)\")\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"plt.subplot(3,3,3)\n",
|
2026-05-22 17:07:06 +00:00
|
|
|
"plt.bar(categoris[4], t_ll[4], color = \"#EEDC82\")\n",
|
|
|
|
|
"plt.bar(categoris[5], t_ll[5], color = \"#88D94C\")\n",
|
2026-05-10 12:30:37 +00:00
|
|
|
"\n",
|
|
|
|
|
"plt.title(f\"Время удаления элементов в LinkedList\")\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"plt.ylabel(\"время работы(секунды)\")\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"plt.subplot(3,3,4)\n",
|
2026-05-22 17:07:06 +00:00
|
|
|
"plt.bar(categoris[0], t_ht[0], color = \"#EEDC82\")\n",
|
|
|
|
|
"plt.bar(categoris[1], t_ht[1], color = \"#88D94C\")\n",
|
2026-05-10 12:30:37 +00:00
|
|
|
"\n",
|
|
|
|
|
"plt.title(f\"Время добавление для HashTable\")\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"plt.ylabel(\"время работы(секунды)\")\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"plt.subplot(3,3,5)\n",
|
2026-05-22 17:07:06 +00:00
|
|
|
"plt.bar(categoris[2], t_ht[2], color = \"#EEDC82\")\n",
|
|
|
|
|
"plt.bar(categoris[3], t_ht[3], color = \"#88D94C\")\n",
|
2026-05-10 12:30:37 +00:00
|
|
|
"\n",
|
|
|
|
|
"plt.title(f\"Время поиска элементов в HashTable\")\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"plt.ylabel(\"время работы(секунды)\")\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"plt.subplot(3,3,6)\n",
|
2026-05-22 17:07:06 +00:00
|
|
|
"plt.bar(categoris[4], t_bt[4], color = \"#EEDC82\")\n",
|
|
|
|
|
"plt.bar(categoris[5], t_bt[5], color = \"#88D94C\")\n",
|
2026-05-10 12:30:37 +00:00
|
|
|
"\n",
|
|
|
|
|
"plt.title(f\"Время удаления элементов в HashTable\")\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"plt.ylabel(\"время работы(секунды)\")\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"plt.subplot(3,3,7)\n",
|
2026-05-22 17:07:06 +00:00
|
|
|
"plt.bar(categoris[0], t_bt[0], color = \"#EEDC82\")\n",
|
|
|
|
|
"plt.bar(categoris[1], t_bt[1], color = \"#88D94C\")\n",
|
2026-05-10 12:30:37 +00:00
|
|
|
"\n",
|
|
|
|
|
"plt.title(f\"Время добавление для BinaryTree\")\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"plt.ylabel(\"время работы(секунды)\")\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"plt.subplot(3,3,8)\n",
|
2026-05-22 17:07:06 +00:00
|
|
|
"plt.bar(categoris[2], t_bt[2], color = \"#EEDC82\")\n",
|
|
|
|
|
"plt.bar(categoris[3], t_bt[3], color = \"#88D94C\")\n",
|
2026-05-10 12:30:37 +00:00
|
|
|
"\n",
|
|
|
|
|
"plt.title(f\"Время поиска элементов в BinaryTree\")\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"plt.ylabel(\"время работы(секунды)\")\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"plt.subplot(3,3,9)\n",
|
2026-05-22 17:07:06 +00:00
|
|
|
"plt.bar(categoris[4], t_bt[4], color = \"#EEDC82\")\n",
|
|
|
|
|
"plt.bar(categoris[5], t_bt[5], color = \"#88D94C\")\n",
|
2026-05-10 12:30:37 +00:00
|
|
|
"\n",
|
|
|
|
|
"plt.title(f\"Время удаления элементов в BinaryTree\")\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"plt.ylabel(\"время работы(секунды)\")\n",
|
|
|
|
|
"\n",
|
2026-05-22 17:07:06 +00:00
|
|
|
"plt.savefig('analysis_midle.png')\n",
|
2026-05-10 12:30:37 +00:00
|
|
|
"plt.tight_layout() \n",
|
2026-05-14 10:44:13 +00:00
|
|
|
"plt.show()\n"
|
2026-05-10 12:30:37 +00:00
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "code",
|
|
|
|
|
"execution_count": null,
|
2026-05-14 10:44:13 +00:00
|
|
|
"id": "77155f07",
|
2026-05-10 12:30:37 +00:00
|
|
|
"metadata": {},
|
|
|
|
|
"outputs": [],
|
2026-05-10 10:00:19 +00:00
|
|
|
"source": []
|
2026-04-15 13:49:57 +00:00
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"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.12.3"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"nbformat": 4,
|
|
|
|
|
"nbformat_minor": 5
|
|
|
|
|
}
|