2026-rff_mp/volkovim/task1/histograms.py
2026-04-30 16:20:23 +03:00

45 lines
928 B
Python

import csv
import matplotlib.pyplot as plt
from collections import defaultdict
data = defaultdict(list)
with open("results.csv", "r") as f:
reader = csv.DictReader(f)
for row in reader:
key = (row["Structure"], row["Order"], row["Operation"])
data[key].append(float(row["Time"]))
def avg(key):
return sum(data[key]) / len(data[key])
structures = ["LinkedList", "HashTable", "BST"]
orders = ["random", "sorted"]
operations = ["insert", "find", "delete"]
for op in operations:
plt.figure()
labels = []
values = []
for struct in structures:
for order in orders:
key = (struct, order, op)
labels.append(f"{struct}\n{order}")
values.append(avg(key))
plt.bar(labels, values)
plt.title(f"{op} (Histogram)")
plt.ylabel("Time (sec)")
plt.xticks(rotation=30)
plt.grid(axis="y")
plt.tight_layout()
plt.show()