Переделан и реализован подсчёт времени для каждой СД
This commit is contained in:
parent
94bc3b8524
commit
cb02fb20fe
|
|
@ -10,7 +10,7 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 1,
|
"execution_count": 16,
|
||||||
"id": "4689b73e",
|
"id": "4689b73e",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
|
|
@ -38,16 +38,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 2,
|
"execution_count": 17,
|
||||||
"id": "7d073d06",
|
"id": "a3b5c31b",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
"source": [
|
"source": [
|
||||||
"from util.randomNames import generate_test_data\n",
|
"from util.randomNames import generate_test_data\n",
|
||||||
"records_shuffled = generate_test_data(N=10000)\n",
|
"from util.timeTester import test\n",
|
||||||
"records_sorted = generate_test_data(N=10000, _sorted=True)\n",
|
|
||||||
"\n",
|
"\n",
|
||||||
"from util.timeTester import insert_tester"
|
"records_shuffled = generate_test_data(N=10000)\n",
|
||||||
|
"records_sorted = generate_test_data(N=10000, _sorted=True)"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
@ -55,51 +55,63 @@
|
||||||
"id": "c2f4989c",
|
"id": "c2f4989c",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"source": [
|
"source": [
|
||||||
"# 2. Проведение замеров\n",
|
"# 2. Проведение замеров"
|
||||||
"### A. Время вставки"
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": null,
|
"execution_count": 18,
|
||||||
"id": "eba5888c",
|
"id": "df12d41d",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [],
|
||||||
{
|
|
||||||
"name": "stdout",
|
|
||||||
"output_type": "stream",
|
|
||||||
"text": [
|
|
||||||
"{'Function': 'll_insert', 'shuffled': 4.4217493799999374, 'sorted': 5.294112365000046}\n",
|
|
||||||
"{'Function': 'ht_insert', 'shuffled': 0.338659952999933, 'sorted': 0.20052070199994887}\n",
|
|
||||||
"{'Function': 'bst_insert', 'shuffled': 0.01834327899996424, 'sorted': 0.18432242999983828}\n"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"source": [
|
"source": [
|
||||||
|
"# Подготовим функции СД, которые будем тестировать\n",
|
||||||
"from structures.LinkedList import *\n",
|
"from structures.LinkedList import *\n",
|
||||||
"from structures.HashTable import *\n",
|
"from structures.HashTable import *\n",
|
||||||
"from structures.BinaryTree import *\n",
|
"from structures.BinaryTree import *\n",
|
||||||
"\n",
|
"\n",
|
||||||
"print(insert_tester(ll_insert, records_shuffled, records_sorted))\n",
|
"func_list = {\"Связанный список\" : (ll_insert, ll_find, ll_delete),\n",
|
||||||
"print(insert_tester(ht_insert, records_shuffled, records_sorted))\n",
|
" \"Хэш-таблица\" : (ht_insert, ht_find, ht_delete),\n",
|
||||||
"print(insert_tester(bst_insert, records_shuffled, records_sorted))"
|
" \"Бинарное дерево\" : (bst_insert, bst_find, bst_delete)}"
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"cell_type": "markdown",
|
|
||||||
"id": "383c4b1b",
|
|
||||||
"metadata": {},
|
|
||||||
"source": [
|
|
||||||
"### Б. Поиск 100 случайных записей и 10 несуществующих"
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": null,
|
"execution_count": 24,
|
||||||
"id": "d1acfa50",
|
"id": "cc8d0436",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
"source": []
|
"source": [
|
||||||
|
"# Проведём замеры\n",
|
||||||
|
"report = [[\"Структура\", \"Режим\", \"Вставка\", \"Поиск\", \"Удаление\"]]\n",
|
||||||
|
"records = {\"Cлучайный\" : records_shuffled, \"Отсортированный\" : records_sorted}\n",
|
||||||
|
"\n",
|
||||||
|
"TEST_ITERATIONS_NUM = 5\n",
|
||||||
|
"\n",
|
||||||
|
"for _ in range(TEST_ITERATIONS_NUM):\n",
|
||||||
|
" for mode, data in records.items():\n",
|
||||||
|
" for struct_name, fns in func_list.items():\n",
|
||||||
|
" result = test(data, *fns)\n",
|
||||||
|
" row = [struct_name, mode,\n",
|
||||||
|
" result[\"insert_time\"],\n",
|
||||||
|
" result[\"find_time\"],\n",
|
||||||
|
" result[\"delete_time\"]]\n",
|
||||||
|
" report.append(row)"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 25,
|
||||||
|
"id": "2eedf056",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"# Сохраним данные в csv\n",
|
||||||
|
"import csv\n",
|
||||||
|
"with open(\"data/results.csv\", \"w\", newline=\"\") as f:\n",
|
||||||
|
" writer = csv.writer(f)\n",
|
||||||
|
" writer.writerows(report)"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"metadata": {
|
"metadata": {
|
||||||
|
|
@ -118,7 +130,7 @@
|
||||||
"name": "python",
|
"name": "python",
|
||||||
"nbconvert_exporter": "python",
|
"nbconvert_exporter": "python",
|
||||||
"pygments_lexer": "ipython3",
|
"pygments_lexer": "ipython3",
|
||||||
"version": "3.11.2"
|
"version": "3.14.3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nbformat": 4,
|
"nbformat": 4,
|
||||||
|
|
|
||||||
31
MusinAA/docs/data/results.csv
Normal file
31
MusinAA/docs/data/results.csv
Normal file
|
|
@ -0,0 +1,31 @@
|
||||||
|
Структура,Режим,Вставка,Поиск,Удаление
|
||||||
|
Связанный список,Cлучайный,6.184219556999778,0.01564759699977003,0.020917029999509396
|
||||||
|
Хэш-таблица,Cлучайный,0.20728507099920535,0.0011867590001202188,0.0012845039991589147
|
||||||
|
Бинарное дерево,Cлучайный,0.01599855899985414,0.00017333699997834628,0.0001880449999589473
|
||||||
|
Связанный список,Отсортированный,6.1492630290003945,0.08403158500004793,0.11902903299960599
|
||||||
|
Хэш-таблица,Отсортированный,0.1831843130003108,0.003145785999549844,0.0030832479997116025
|
||||||
|
Бинарное дерево,Отсортированный,0.17353334099971107,0.0018611919995237258,0.001973905000340892
|
||||||
|
Связанный список,Cлучайный,5.064191275000667,0.015435045000231185,0.021122407000802923
|
||||||
|
Хэш-таблица,Cлучайный,0.21584205599992856,0.001062764999915089,0.0010387600004833075
|
||||||
|
Бинарное дерево,Cлучайный,0.01586526800019783,0.0001650120002523181,0.0002011500000662636
|
||||||
|
Связанный список,Отсортированный,5.008700298999429,0.08874143100001675,0.11785725200024899
|
||||||
|
Хэш-таблица,Отсортированный,0.16122512399942934,0.0027618209996944643,0.0031808120002096985
|
||||||
|
Бинарное дерево,Отсортированный,0.16625836200000776,0.0017326589995718678,0.0018288709998159902
|
||||||
|
Связанный список,Cлучайный,4.973175217000062,0.016034526000112237,0.029878299000301922
|
||||||
|
Хэш-таблица,Cлучайный,0.19947776500066539,0.0008432810000158497,0.0009618849999242229
|
||||||
|
Бинарное дерево,Cлучайный,0.015627648000190675,0.00015909000012470642,0.00018263399942952674
|
||||||
|
Связанный список,Отсортированный,4.7649637760005135,0.07843009399948642,0.11216894700010016
|
||||||
|
Хэш-таблица,Отсортированный,0.16914973799975996,0.0028197709998494247,0.003400436000447371
|
||||||
|
Бинарное дерево,Отсортированный,0.16913629200007563,0.00174245800008066,0.00184838800032594
|
||||||
|
Связанный список,Cлучайный,5.070599788999971,0.023625830999662867,0.024334026999895286
|
||||||
|
Хэш-таблица,Cлучайный,0.2566551750005601,0.001680571000179043,0.0019877810000252794
|
||||||
|
Бинарное дерево,Cлучайный,0.02019279199976154,0.00019776400040427689,0.0002360259995839442
|
||||||
|
Связанный список,Отсортированный,5.0148616579999725,0.08842415099934442,0.13560766399950808
|
||||||
|
Хэш-таблица,Отсортированный,0.18670927000039228,0.0038891280000825645,0.0034846049993575434
|
||||||
|
Бинарное дерево,Отсортированный,0.1774570309999035,0.0019291399994472158,0.0021798640000270098
|
||||||
|
Связанный список,Cлучайный,5.373787051000363,0.021812238000165962,0.025861819999590807
|
||||||
|
Хэш-таблица,Cлучайный,0.19457704500018735,0.00110557600055472,0.0010436189995743916
|
||||||
|
Бинарное дерево,Cлучайный,0.015349283000432479,0.00016242600031546317,0.00017538100019010017
|
||||||
|
Связанный список,Отсортированный,5.167020247999972,0.08513789999960863,0.12899004599967157
|
||||||
|
Хэш-таблица,Отсортированный,0.18223923400000785,0.0032350740002584644,0.0037601450003421633
|
||||||
|
Бинарное дерево,Отсортированный,0.1719607389995872,0.0017423979998056893,0.0018891839999923832
|
||||||
|
Loading…
Reference in New Issue
Block a user