45 lines
928 B
Python
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() |