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