[1] task 1
This commit is contained in:
parent
f788fb2c8b
commit
cf755242e1
BIN
osipovamd/docs/data/.DS_Store
vendored
BIN
osipovamd/docs/data/.DS_Store
vendored
Binary file not shown.
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
|
@ -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 ["случайный", "отсортированный"]:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user