2026-rff_mp/kuznetsovTD/task1/plot.py

49 lines
1.1 KiB
Python
Raw Normal View History

2026-04-30 20:54:08 +00:00
import csv
import matplotlib.pyplot as plt
from collections import defaultdict
file_path = "results.csv"
data = defaultdict(lambda: defaultdict(lambda: defaultdict(list)))
# data[order][operation][structure] -> list of times
# читаем CSV
with open(file_path, "r") as f:
reader = csv.DictReader(f)
for row in reader:
structure = row["Structure"]
order = row["Order"]
operation = row["Operation"]
time = float(row["Time"])
data[order][operation][structure].append(time)
def get_avg(order, operation, structure):
values = data[order][operation][structure]
return sum(values) / len(values)
def plot_hist(operation):
structures = ["LinkedList", "HashTable", "BST"]
orders = ["shuffled", "sorted"]
for order in orders:
values = [get_avg(order, operation, s) for s in structures]
plt.figure()
plt.bar(structures, values)
plt.title(f"{operation.upper()} (order: {order})")
plt.ylabel("Time (seconds)")
plt.show()
# 3 графика-гистограммы
plot_hist("insert")
plot_hist("find")
plot_hist("delete")