46 lines
1.8 KiB
Python
46 lines
1.8 KiB
Python
|
|
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()
|