241 lines
8.1 KiB
Plaintext
241 lines
8.1 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 51,
|
|
"id": "c533959c",
|
|
"metadata": {},
|
|
"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",
|
|
"import csv\n",
|
|
"import numpy as np"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "15cd6183",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Данные для обработки"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 52,
|
|
"id": "88611f78",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"N = 10000\n",
|
|
"records_sorted = [(f\"User_{i:05d}\", f\"+7999{i:07d}\") for i in range(N)] \n",
|
|
"records_shuffled = records_sorted.copy()\n",
|
|
"rand.shuffle(records_shuffled) "
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "9fd1b8cd",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Исследование для LinkedList "
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "083d49d0",
|
|
"metadata": {},
|
|
"source": [
|
|
"### Добавление всех элементов произвольного кортежа\n",
|
|
"- **data_ll_sh** - структура произвольных данных (только последний замер)\n",
|
|
"- **time_ll_insert_sh** - Замер времени работы 10000 элементов (5 замеров) "
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 53,
|
|
"id": "11634fa4",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"time_ll_insert_sh = [] \n",
|
|
"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",
|
|
" time_ll_insert_sh.append(end - start)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "0a5f161e",
|
|
"metadata": {},
|
|
"source": [
|
|
"### Добавление всех элементов сортированного кортежа\n",
|
|
"- **data_ll_so** - Структура отсортированных данных (только последний замер)\n",
|
|
"- **time_ll_insert_so** - Замер времени работы 10000 элементов (5 замеров) "
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 54,
|
|
"id": "9eab4641",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"time_ll_insert_so = [] \n",
|
|
"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",
|
|
" time_ll_insert_so.append(end - start)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "5862d31b",
|
|
"metadata": {},
|
|
"source": [
|
|
"### Поиск элементов в произвольном массиве\n",
|
|
"- **time_ll_find_sh** - Време поиска в произвольном массиве (для 5 замеров)\n",
|
|
"- **find_ll_sh** - массив найденных данных в произвольном массиве (только последний замер)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 55,
|
|
"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",
|
|
" time_ll_find_sh.append(end - start)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "651aac23",
|
|
"metadata": {},
|
|
"source": [
|
|
"### Поиск элементов в отсортированном массиве\n",
|
|
"- **time_ll_find_so** - Време поиска в отсортированном массиве (для 5 замеров)\n",
|
|
"- **find_ll_so** - Массив найденных данных в отсортированном массиве (только последний замер)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 56,
|
|
"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",
|
|
" time_ll_find_so.append(end - start)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "a1f70be9",
|
|
"metadata": {},
|
|
"source": [
|
|
"### Удаление элементов в произвольном массиве\n",
|
|
"- **time_ll_delete_sh** - Време поиска в произвольном массиве (для 5 замеров)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "6cdf8a70",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"ename": "KeyError",
|
|
"evalue": "9873",
|
|
"output_type": "error",
|
|
"traceback": [
|
|
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
|
|
"\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)",
|
|
"Cell \u001b[0;32mIn[59], line 7\u001b[0m\n\u001b[1;32m 5\u001b[0m i \u001b[38;5;241m=\u001b[39m rand\u001b[38;5;241m.\u001b[39mrandint(\u001b[38;5;241m0\u001b[39m, N\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m)\n\u001b[1;32m 6\u001b[0m str_delete \u001b[38;5;241m=\u001b[39m records_shuffled[i][\u001b[38;5;241m0\u001b[39m]\n\u001b[0;32m----> 7\u001b[0m data_ll_sh \u001b[38;5;241m=\u001b[39m ll\u001b[38;5;241m.\u001b[39mll_delete(\u001b[43mdata_ll_sh\u001b[49m\u001b[43m[\u001b[49m\u001b[43mi\u001b[49m\u001b[43m]\u001b[49m[\u001b[38;5;241m2\u001b[39m], str_delete)\n\u001b[1;32m 8\u001b[0m end \u001b[38;5;241m=\u001b[39m time\u001b[38;5;241m.\u001b[39mperf_counter()\n\u001b[1;32m 9\u001b[0m time_ll_delete_sh\u001b[38;5;241m.\u001b[39mappend(end \u001b[38;5;241m-\u001b[39m start)\n",
|
|
"\u001b[0;31mKeyError\u001b[0m: 9873"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"time_ll_delete_sh = []\n",
|
|
"for n in range(5):\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",
|
|
" data_ll_sh = ll.ll_delete(data_ll_sh[i][2], str_delete)\n",
|
|
" end = time.perf_counter()\n",
|
|
" time_ll_delete_sh.append(end - start)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "8d6156e9",
|
|
"metadata": {},
|
|
"source": [
|
|
"### Удаление элементов в произвольном массиве\n",
|
|
"- **time_ll_delete_sh** - Време поиска в произвольном массиве (для 5 замеров)"
|
|
]
|
|
}
|
|
],
|
|
"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
|
|
}
|