From d232cc536da7533067c62ee83be2481c464434a1 Mon Sep 17 00:00:00 2001 From: kirill Date: Mon, 20 Apr 2026 18:41:33 +0300 Subject: [PATCH] add experiment and plots --- svetlakovkyu/docs/data/01/codes/__init__.py | 0 svetlakovkyu/docs/data/01/codes/experiment.py | 101 ++++++++++++++++ svetlakovkyu/docs/data/01/codes/plot.py | 59 ++++++++++ svetlakovkyu/docs/data/01/delete_plot.png | Bin 0 -> 21750 bytes svetlakovkyu/docs/data/01/insert_plot.png | Bin 0 -> 22979 bytes svetlakovkyu/docs/data/01/main.py | 6 + svetlakovkyu/docs/data/01/results.csv | 109 ++++++++++++++++++ svetlakovkyu/docs/data/01/search_plot.png | Bin 0 -> 22835 bytes 8 files changed, 275 insertions(+) create mode 100644 svetlakovkyu/docs/data/01/codes/__init__.py create mode 100644 svetlakovkyu/docs/data/01/codes/experiment.py create mode 100644 svetlakovkyu/docs/data/01/codes/plot.py create mode 100644 svetlakovkyu/docs/data/01/delete_plot.png create mode 100644 svetlakovkyu/docs/data/01/insert_plot.png create mode 100644 svetlakovkyu/docs/data/01/main.py create mode 100644 svetlakovkyu/docs/data/01/results.csv create mode 100644 svetlakovkyu/docs/data/01/search_plot.png diff --git a/svetlakovkyu/docs/data/01/codes/__init__.py b/svetlakovkyu/docs/data/01/codes/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/svetlakovkyu/docs/data/01/codes/experiment.py b/svetlakovkyu/docs/data/01/codes/experiment.py new file mode 100644 index 0000000..edd4002 --- /dev/null +++ b/svetlakovkyu/docs/data/01/codes/experiment.py @@ -0,0 +1,101 @@ +import random +import time +import csv +import sys + +sys.setrecursionlimit(20000) + +from codes.LL import ll_insert, ll_find, ll_delete +from codes.HT import ht_insert, ht_delete, ht_find +from codes.BST import bst_delete, bst_find, bst_insert + +# Экспериментальная часть +def generate_records(N): + records =[] + for i in range(N): + name = f"User_{i:05d}" + phone =str(random.randint(100000,999999)) + records.append((name,phone)) + return records + + +def run_test(structure_name, mode, input_data, search_names, delete_names): + print(f"Тест {structure_name} в режиме {mode}") + ins_times = [] + find_times = [] + del_times = [] + for _ in range(5): + if structure_name == "LL": + container = None + elif structure_name == "BST": + container = None + elif structure_name == "HT": + container = [None]*150 + #А + start = time.perf_counter() + for name, phone in input_data: + if structure_name == "LL": + container = ll_insert(container, name, phone) + elif structure_name == "BST": + container = bst_insert(container, name, phone) + elif structure_name == "HT": + ht_insert(container, name, phone) + ins_times.append(time.perf_counter() - start) + #Б + start = time.perf_counter() + for name in search_names: + if structure_name == "LL": ll_find(container, name) + elif structure_name == "BST": bst_find(container, name) + else: ht_find(container, name) + find_times.append(time.perf_counter() - start) + #В + start = time.perf_counter() + for name in delete_names: + if structure_name == "LL": container = ll_delete(container, name) + elif structure_name == "BST": container = bst_delete(container, name) + else: ht_delete(container, name) + del_times.append(time.perf_counter() - start) + + results = [] + + for i in range(5): + results.append([structure_name, mode, f"Вставка (попытка {i+1})", ins_times[i]]) + results.append([structure_name, mode, "Вставка СРЕДНЕЕ", sum(ins_times) / 5]) + + for i in range(5): + results.append([structure_name, mode, f"Поиск (попытка {i+1})", find_times[i]]) + results.append([structure_name, mode, "Поиск СРЕДНЕЕ", sum(find_times) / 5]) + + for i in range(5): + results.append([structure_name, mode, f"Удаление (попытка {i+1})", del_times[i]]) + results.append([structure_name, mode, "Удаление СРЕДНЕЕ", sum(del_times) / 5]) + + return results + +def main_experiment(): + N = 10000 + + data = generate_records(N) + random.shuffle(data) + data_sort = sorted(data, key = lambda x: x[0]) + + search_names = [r[0] for r in random.sample(data, 100)] + [f"None_{i}" for i in range(10)] + delete_names = [r[0] for r in random.sample(data, 50)] + + results = [["Structure", "Mode", "Operation", "Time"]] + + for mode_name, mode_data in [("shufled", data), ("sorted", data_sort)]: + results += run_test("LL", mode_name, mode_data, search_names, delete_names) + results += run_test("BST", mode_name, mode_data, search_names, delete_names) + results += run_test("HT", mode_name, mode_data, search_names, delete_names) + + + + with open("results.csv", "w", newline = "") as f: + writer = csv.writer(f) + writer.writerows(results) + print("Результаты сохранены в файл") + + +if __name__ == "__main__": + main_experiment() \ No newline at end of file diff --git a/svetlakovkyu/docs/data/01/codes/plot.py b/svetlakovkyu/docs/data/01/codes/plot.py new file mode 100644 index 0000000..adf93c3 --- /dev/null +++ b/svetlakovkyu/docs/data/01/codes/plot.py @@ -0,0 +1,59 @@ +import numpy as np +import matplotlib.pyplot as plt +import pandas as pd + +# Графики + +def plot_all(df: pd.DataFrame): + structures = ["BST", "HT", "LL"] + operations = ["Вставка", "Поиск", "Удаление"] + op_keys = ["Вставка СРЕДНЕЕ", "Поиск СРЕДНЕЕ", "Удаление СРЕДНЕЕ"] + filenames = ["./insert_plot.png", "./search_plot.png", "./delete_plot.png"] + + avg = df[df["Operation"].isin(op_keys)] + + data = { + (row.Structure, row.Mode, row.Operation): row.Time + for row in avg.itertuples(index=False) + } + + x = np.arange(len(structures)) + width = 0.35 + + for op_label, op_key, filename in zip(operations, op_keys, filenames): + fig, ax = plt.subplots(figsize=(8, 5)) + + times_shuffled = [data.get((s, "shufled", op_key), float('nan')) for s in structures] + times_sorted = [data.get((s, "sorted", op_key), 0) for s in structures] + + bars1 = ax.bar(x - width/2, times_shuffled, width, label="Случайный", color="steelblue") + bars2 = ax.bar(x + width/2, times_sorted, width, label="Отсортированный", color="red") + + for bar in bars1: + height = bar.get_height() + ax.text(bar.get_x() + bar.get_width() / 2, height, + f"{height:.6f}", ha="center", va="bottom", fontsize=8) + + for bar in bars2: + height = bar.get_height() + ax.text(bar.get_x() + bar.get_width() / 2, height, + f"{height:.6f}", ha="center", va="bottom", fontsize=8) + + ax.set_yscale("log") + ax.set_title(op_label) + ax.set_ylabel("Время (сек)") + ax.set_xticks(x) + ax.set_xticklabels(structures) + ax.legend() + ax.grid(axis="y", linestyle="--", alpha=0.7) + + plt.tight_layout() + plt.savefig(filename) + print(f"График сохранён: {filename}") + +def main_plot(): + results = pd.read_csv("./results.csv") + plot_all(results) + +if __name__ == "__main__": + main_plot() \ No newline at end of file diff --git a/svetlakovkyu/docs/data/01/delete_plot.png b/svetlakovkyu/docs/data/01/delete_plot.png new file mode 100644 index 0000000000000000000000000000000000000000..678a8fc48d470d8f056518eeb0da2eb7db6da269 GIT binary patch literal 21750 zcmch<2Ut~Ewk>=>F(87aBBF>1l%SwU&IP6e5+thxQIRB|L;(o~pb7(eL{LD2lA{7j z1{D(^L4xEY0+N*|`Hh9uRo%Dm_ip#?_y2xXAL*RE_t|T%ImZ}t%>BE%>YP38!v_GI{uW57E-pSb3grZ_>fBu|}{W?jl#WAZ;;tXzya zg`#zey8lMLHD9eY7>v}i�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 W8V>vOeas~nK|P?lKUv}AmHz{-c~YVP literal 0 HcmV?d00001 diff --git a/svetlakovkyu/docs/data/01/insert_plot.png b/svetlakovkyu/docs/data/01/insert_plot.png new file mode 100644 index 0000000000000000000000000000000000000000..44305c6a7866f0511eaabb9e3b194ea1120c27d9 GIT binary patch literal 22979 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