2026-rff_mp/docs/data/compare_structures.py

46 lines
1.8 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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()