[1] task 1

This commit is contained in:
MariiaOs 2026-05-17 15:15:28 +03:00
parent f788fb2c8b
commit cf755242e1
4 changed files with 21 additions and 33 deletions

BIN
.DS_Store vendored

Binary file not shown.

Binary file not shown.

View File

@ -1,19 +1,19 @@
Структура,Режим,Операция,Замер1,Замер2,Замер3,Среднее Структура,Режим,Операция,Замер1,Замер2,Замер3,Среднее
LinkedList,случайный,вставка,0.014099,0.014181,0.014180,0.014153 LinkedList,случайный,вставка,0.017595,0.018368,0.016781,0.017581
LinkedList,случайный,поиск,0.001849,0.001841,0.001897,0.001862 LinkedList,случайный,поиск,0.002300,0.002235,0.002287,0.002274
LinkedList,случайный,удаление,0.000859,0.000863,0.000825,0.000849 LinkedList,случайный,удаление,0.000868,0.000819,0.000819,0.000835
LinkedList,отсортированный,вставка,0.012913,0.012512,0.012566,0.012663 LinkedList,отсортированный,вставка,0.014638,0.014335,0.014226,0.014400
LinkedList,отсортированный,поиск,0.001616,0.001457,0.001696,0.001590 LinkedList,отсортированный,поиск,0.001955,0.001930,0.001897,0.001928
LinkedList,отсортированный,удаление,0.000992,0.000931,0.000940,0.000954 LinkedList,отсортированный,удаление,0.000975,0.000984,0.000998,0.000986
HashTable,случайный,вставка,0.001368,0.001415,0.001385,0.001389 HashTable,случайный,вставка,0.001593,0.001598,0.001441,0.001544
HashTable,случайный,поиск,0.000162,0.000153,0.000146,0.000153 HashTable,случайный,поиск,0.000180,0.000156,0.000154,0.000163
HashTable,случайный,удаление,0.000076,0.000075,0.000075,0.000075 HashTable,случайный,удаление,0.000070,0.000068,0.000069,0.000069
HashTable,отсортированный,вставка,0.001275,0.001258,0.001376,0.001303 HashTable,отсортированный,вставка,0.001369,0.001375,0.001383,0.001376
HashTable,отсортированный,поиск,0.000169,0.000139,0.000140,0.000149 HashTable,отсортированный,поиск,0.000168,0.000160,0.000148,0.000159
HashTable,отсортированный,удаление,0.000080,0.000080,0.000079,0.000080 HashTable,отсортированный,удаление,0.000080,0.000077,0.000076,0.000078
BST,случайный,вставка,0.000514,0.000482,0.000507,0.000501 BST,случайный,вставка,0.000513,0.000501,0.000514,0.000509
BST,случайный,поиск,0.000081,0.000056,0.000055,0.000064 BST,случайный,поиск,0.000077,0.000059,0.000054,0.000063
BST,случайный,удаление,0.000042,0.000038,0.000039,0.000040 BST,случайный,удаление,0.000044,0.000042,0.000039,0.000042
BST,отсортированный,вставка,0.018947,0.018836,0.018665,0.018816 BST,отсортированный,вставка,0.019008,0.018696,0.018868,0.018857
BST,отсортированный,поиск,0.002172,0.002200,0.001973,0.002115 BST,отсортированный,поиск,0.001828,0.001813,0.001811,0.001817
BST,отсортированный,удаление,0.001400,0.001407,0.001390,0.001399 BST,отсортированный,удаление,0.001735,0.001842,0.001617,0.001731

1 Структура Режим Операция Замер1 Замер2 Замер3 Среднее
2 LinkedList случайный вставка 0.014099 0.017595 0.014181 0.018368 0.014180 0.016781 0.014153 0.017581
3 LinkedList случайный поиск 0.001849 0.002300 0.001841 0.002235 0.001897 0.002287 0.001862 0.002274
4 LinkedList случайный удаление 0.000859 0.000868 0.000863 0.000819 0.000825 0.000819 0.000849 0.000835
5 LinkedList отсортированный вставка 0.012913 0.014638 0.012512 0.014335 0.012566 0.014226 0.012663 0.014400
6 LinkedList отсортированный поиск 0.001616 0.001955 0.001457 0.001930 0.001696 0.001897 0.001590 0.001928
7 LinkedList отсортированный удаление 0.000992 0.000975 0.000931 0.000984 0.000940 0.000998 0.000954 0.000986
8 HashTable случайный вставка 0.001368 0.001593 0.001415 0.001598 0.001385 0.001441 0.001389 0.001544
9 HashTable случайный поиск 0.000162 0.000180 0.000153 0.000156 0.000146 0.000154 0.000153 0.000163
10 HashTable случайный удаление 0.000076 0.000070 0.000075 0.000068 0.000075 0.000069 0.000075 0.000069
11 HashTable отсортированный вставка 0.001275 0.001369 0.001258 0.001375 0.001376 0.001383 0.001303 0.001376
12 HashTable отсортированный поиск 0.000169 0.000168 0.000139 0.000160 0.000140 0.000148 0.000149 0.000159
13 HashTable отсортированный удаление 0.000080 0.000080 0.000077 0.000079 0.000076 0.000080 0.000078
14 BST случайный вставка 0.000514 0.000513 0.000482 0.000501 0.000507 0.000514 0.000501 0.000509
15 BST случайный поиск 0.000081 0.000077 0.000056 0.000059 0.000055 0.000054 0.000064 0.000063
16 BST случайный удаление 0.000042 0.000044 0.000038 0.000042 0.000039 0.000040 0.000042
17 BST отсортированный вставка 0.018947 0.019008 0.018836 0.018696 0.018665 0.018868 0.018816 0.018857
18 BST отсортированный поиск 0.002172 0.001828 0.002200 0.001813 0.001973 0.001811 0.002115 0.001817
19 BST отсортированный удаление 0.001400 0.001735 0.001407 0.001842 0.001390 0.001617 0.001399 0.001731

View File

@ -285,7 +285,6 @@ def measure_deletion(structure_type, structure, names_to_delete, repeats=3):
return times return times
def run_experiment(N=2000): def run_experiment(N=2000):
"""Запускает все эксперименты и возвращает результаты"""
print(f"Генерация тестовых данных (N={N})...") print(f"Генерация тестовых данных (N={N})...")
records_shuffled, records_sorted = generate_test_data(N) records_shuffled, records_sorted = generate_test_data(N)
@ -299,7 +298,6 @@ def run_experiment(N=2000):
results = [] results = []
print("\nНачало экспериментов:") print("\nНачало экспериментов:")
print("=" * 60)
for structure in structures: for structure in structures:
print(f"\nТестирование {structure}...") print(f"\nТестирование {structure}...")
@ -308,7 +306,6 @@ def run_experiment(N=2000):
print(f" Режим: {mode}") print(f" Режим: {mode}")
records = records_shuffled if mode == "случайный" else records_sorted records = records_shuffled if mode == "случайный" else records_sorted
# Вставка
print(f" Измерение вставки...") print(f" Измерение вставки...")
try: try:
insert_times = measure_insertion(structure, records, repeats=3) insert_times = measure_insertion(structure, records, repeats=3)
@ -368,10 +365,6 @@ def run_experiment(N=2000):
return results return results
# ============================================================
# СОХРАНЕНИЕ РЕЗУЛЬТАТОВ В CSV
# ============================================================
import os import os
import csv import csv
from datetime import datetime from datetime import datetime
@ -452,13 +445,10 @@ def plot_results(results):
plt.savefig('performance_comparison.png', dpi=300, bbox_inches='tight') plt.savefig('performance_comparison.png', dpi=300, bbox_inches='tight')
plt.show() plt.show()
print("\nГрафик сохранён как 'performance_comparison.png'")
if __name__ == "__main__": if __name__ == "__main__":
print("=" * 60) print("тестирование производительности структур данных")
print("ТЕСТИРОВАНИЕ ПРОИЗВОДИТЕЛЬНОСТИ СТРУКТУР ДАННЫХ")
print("=" * 60)
results = run_experiment(N=1000) results = run_experiment(N=1000)
save_to_csv(results) save_to_csv(results)
@ -467,11 +457,9 @@ if __name__ == "__main__":
print("\nПостроение графиков...") print("\nПостроение графиков...")
plot_results(results) plot_results(results)
print("\n" + "=" * 60) print("Сводная таблица результатов (среднее время в секундах)")
print("СВОДНАЯ ТАБЛИЦА РЕЗУЛЬТАТОВ (среднее время в секундах)")
print("=" * 60)
print(f"{'Структура':<12} {'Режим':<12} {'Вставка':<10} {'Поиск':<10} {'Удаление':<10}") print(f"{'Структура':<12} {'Режим':<12} {'Вставка':<10} {'Поиск':<10} {'Удаление':<10}")
print("-" * 60)
for structure in ["LinkedList", "HashTable", "BST"]: for structure in ["LinkedList", "HashTable", "BST"]:
for mode in ["случайный", "отсортированный"]: for mode in ["случайный", "отсортированный"]: