2026-rff_mp/docs/data/compare_structures.py

46 lines
1.8 KiB
Python
Raw Permalink Normal View History

import csv
import os
def read_results(filename):
"""Читает результаты из CSV файла"""
results = []
try:
with open(filename, 'r', encoding='utf-8') as f:
reader = csv.reader(f)
next(reader) # Пропускаем заголовок
for row in reader:
results.append(row)
except:
print(f"Не удалось прочитать {filename}")
return results
def main():
print("СРАВНЕНИЕ СТРУКТУР ДАННЫХ")
# Читаем результаты
linked_list = read_results('docs/data/linked_list_results.csv')
hash_table = read_results('docs/data/hash_table_results.csv')
bst = read_results('docs/data/bst_results.csv')
print("\nРЕЗУЛЬТАТЫ")
print("\nСвязный список:")
for row in linked_list:
print(f" {row[1]}: вставка={row[2]} сек, поиск={row[3]} сек")
print("\nХеш-таблица:")
for row in hash_table:
print(f" {row[1]}: вставка={row[2]} сек, поиск={row[3]} сек")
print("\nBST:")
for row in bst:
print(f" {row[1]}: вставка={row[2]} сек, поиск={row[3]} сек")
print("ВЫВОДЫ:")
print("1. Хеш-таблица работает быстрее всего для поиска")
print("2. BST сильно замедляется на отсортированных данных")
print("3. Связный список самый медленный для всех операций")
print("4. Для частого поиска лучше использовать хеш-таблицу")
print("5. Для отсортированных данных BST неэффективен")
if __name__ == "__main__":
main()