From 22acd557d102057338a8fba0dfbe6f05ea315afa Mon Sep 17 00:00:00 2001 From: ShulpinIN Date: Sun, 24 May 2026 14:16:21 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=20=D0=BA=D0=BE=D0=B4=20=D0=B8=20=D0=BE=D1=82=D1=87=D0=B5?= =?UTF-8?q?=D1=82=20=D0=BF=D0=BE=20=D0=BB=D0=B0=D0=B1=D0=BE=D1=80=D0=B0?= =?UTF-8?q?=D1=82=D0=BE=D1=80=D0=BD=D0=BE=D0=B9=20=D1=80=D0=B0=D0=B1=D0=BE?= =?UTF-8?q?=D1=82=D0=B5=20=E2=84=961=20"=D0=A1=D1=82=D1=80=D1=83=D0=BA?= =?UTF-8?q?=D1=82=D1=83=D1=80=D1=8B=20=D0=B4=D0=B0=D0=BD=D0=BD=D1=8B=D1=85?= =?UTF-8?q?"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../.idea/datastructure_lab1.iml | 8 + ShulpinIN/datastructure_lab1/datastruct.py | 308 ++++++++++++++++++ ShulpinIN/datastructure_lab1/docs/README.md | 33 ++ .../docs/data/performance_comparison.png | Bin 0 -> 135664 bytes .../datastructure_lab1/docs/data/results.csv | 19 ++ 5 files changed, 368 insertions(+) create mode 100644 ShulpinIN/datastructure_lab1/.idea/datastructure_lab1.iml create mode 100644 ShulpinIN/datastructure_lab1/datastruct.py create mode 100644 ShulpinIN/datastructure_lab1/docs/README.md create mode 100644 ShulpinIN/datastructure_lab1/docs/data/performance_comparison.png create mode 100644 ShulpinIN/datastructure_lab1/docs/data/results.csv diff --git a/ShulpinIN/datastructure_lab1/.idea/datastructure_lab1.iml b/ShulpinIN/datastructure_lab1/.idea/datastructure_lab1.iml new file mode 100644 index 0000000..d0876a7 --- /dev/null +++ b/ShulpinIN/datastructure_lab1/.idea/datastructure_lab1.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/ShulpinIN/datastructure_lab1/datastruct.py b/ShulpinIN/datastructure_lab1/datastruct.py new file mode 100644 index 0000000..09a05bf --- /dev/null +++ b/ShulpinIN/datastructure_lab1/datastruct.py @@ -0,0 +1,308 @@ +import random +import time +import csv +import os +import matplotlib.pyplot as plt +import numpy as np + +from sys import setrecursionlimit + +setrecursionlimit(20000) + + +def ll_insert(head, name, phone): + new_node = {'name': name, 'phone': phone, 'next': None} + if head is None: + return new_node + current = head + while current: + if current['name'] == name: + current['phone'] = phone + return head + if current['next'] is None: + break + current = current['next'] + current['next'] = new_node + return head + + +def ll_find(head, name): + current = head + while current: + if current['name'] == name: + return current['phone'] + current = current['next'] + return None + + +def ll_delete(head, name): + if head is None: + return None + if head['name'] == name: + return head['next'] + prev = head + current = head['next'] + while current: + if current['name'] == name: + prev['next'] = current['next'] + return head + prev = current + current = current['next'] + return head + + +def ll_list_all(head): + records = [] + current = head + while current: + records.append((current['name'], current['phone'])) + current = current['next'] + records.sort(key=lambda x: x[0]) + return records + + +def hash_function(name, size): + return sum(ord(ch) for ch in name) % size + + +def ht_create(size=1000): + return [None] * size + + +def ht_insert(buckets, name, phone): + index = hash_function(name, len(buckets)) + buckets[index] = ll_insert(buckets[index], name, phone) + + +def ht_find(buckets, name): + index = hash_function(name, len(buckets)) + return ll_find(buckets[index], name) + + +def ht_delete(buckets, name): + index = hash_function(name, len(buckets)) + buckets[index] = ll_delete(buckets[index], name) + + +def ht_list_all(buckets): + records = [] + for head in buckets: + current = head + while current: + records.append((current['name'], current['phone'])) + current = current['next'] + records.sort(key=lambda x: x[0]) + return records + + +def bst_insert(root, name, phone): + if root is None: + return {'name': name, 'phone': phone, 'left': None, 'right': None} + if name < root['name']: + root['left'] = bst_insert(root['left'], name, phone) + elif name > root['name']: + root['right'] = bst_insert(root['right'], name, phone) + else: + root['phone'] = phone + return root + + +def bst_find(root, name): + if root is None: + return None + if name == root['name']: + return root['phone'] + elif name < root['name']: + return bst_find(root['left'], name) + else: + return bst_find(root['right'], name) + + +def bst_min_node(node): + current = node + while current and current['left']: + current = current['left'] + return current + + +def bst_delete(root, name): + if root is None: + return None + if name < root['name']: + root['left'] = bst_delete(root['left'], name) + elif name > root['name']: + root['right'] = bst_delete(root['right'], name) + else: + if root['left'] is None: + return root['right'] + elif root['right'] is None: + return root['left'] + temp = bst_min_node(root['right']) + root['name'] = temp['name'] + root['phone'] = temp['phone'] + root['right'] = bst_delete(root['right'], temp['name']) + return root + + +def bst_list_all(root, result=None): + if result is None: + result = [] + if root: + bst_list_all(root['left'], result) + result.append((root['name'], root['phone'])) + bst_list_all(root['right'], result) + return result + + +def generate_records(n, duplicate_prob=0.1): + records = [] + for i in range(n): + if random.random() < duplicate_prob and i > 0: + name = records[random.randint(0, i - 1)][0] + else: + name = f"User_{random.randint(0, n * 2)}" + phone = f"+7-999-{random.randint(1000000, 9999999)}" + records.append((name, phone)) + return records + + +def run_experiment(structure_name, init_func, insert_func, find_func, delete_func, list_func, records, query_names, + delete_names): + if structure_name == "HashTable": + data = init_func() + else: + data = None + + start = time.perf_counter() + for name, phone in records: + if structure_name == "LinkedList" or structure_name == "BST": + data = insert_func(data, name, phone) + else: + insert_func(data, name, phone) + insert_time = time.perf_counter() - start + + start = time.perf_counter() + for name in query_names: + find_func(data, name) + find_time = time.perf_counter() - start + + start = time.perf_counter() + for name in delete_names: + if structure_name == "LinkedList" or structure_name == "BST": + data = delete_func(data, name) + else: + delete_func(data, name) + delete_time = time.perf_counter() - start + + all_records = list_func(data) + return insert_time, find_time, delete_time, len(all_records) + + +def main(): + N = 3000 + + save_dir = r"C:\Users\User\2026-rff_mp\ShulpinIN\datastructure_lab1\docs\data" + csv_path = os.path.join(save_dir, "results.csv") + graph_path = os.path.join(save_dir, "performance_comparison.png") + + + + records_original = generate_records(N, duplicate_prob=0.05) + records_shuffled = records_original.copy() + random.shuffle(records_shuffled) + records_sorted = sorted(records_original, key=lambda x: x[0]) + + existing_names = list(set([r[0] for r in records_original])) + query_names = random.sample(existing_names, min(100, len(existing_names))) + [f"None_{i}" for i in range(10)] + delete_names = random.sample(existing_names, min(50, len(existing_names))) + + results = [["Structure", "Mode", "Operation", "Time(sec)"]] + + for mode_name, records in [("random", records_shuffled), ("sorted", records_sorted)]: + for structure_name, init_func, insert_func, find_func, delete_func, list_func in [ + ("LinkedList", None, ll_insert, ll_find, ll_delete, ll_list_all), + ("BST", None, bst_insert, bst_find, bst_delete, bst_list_all), + ("HashTable", ht_create, ht_insert, ht_find, ht_delete, ht_list_all) + ]: + ins, fin, dlt, _ = run_experiment(structure_name, init_func, insert_func, find_func, delete_func, list_func, + records, query_names, delete_names) + results.append([structure_name, mode_name, "insert", ins]) + results.append([structure_name, mode_name, "search_110", fin]) + results.append([structure_name, mode_name, "delete_50", dlt]) + + + with open(csv_path, "w", newline="", encoding='utf-8') as f: + writer = csv.writer(f) + writer.writerows(results) + + print(f"Results saved to {csv_path}") + + + structures = ["LinkedList", "HashTable", "BST"] + + random_insert = [] + random_search = [] + random_delete = [] + sorted_insert = [] + sorted_search = [] + sorted_delete = [] + + for row in results[1:]: + structure, mode, operation, time_val = row + if mode == "random" and operation == "insert": + random_insert.append(time_val) + elif mode == "random" and operation == "search_110": + random_search.append(time_val) + elif mode == "random" and operation == "delete_50": + random_delete.append(time_val) + elif mode == "sorted" and operation == "insert": + sorted_insert.append(time_val) + elif mode == "sorted" and operation == "search_110": + sorted_search.append(time_val) + elif mode == "sorted" and operation == "delete_50": + sorted_delete.append(time_val) + + # Построение и сохранение графика + fig, axes = plt.subplots(1, 3, figsize=(18, 6)) + x = np.arange(len(structures)) + width = 0.35 + + axes[0].bar(x - width / 2, random_insert, width, label="Random", color="steelblue") + axes[0].bar(x + width / 2, sorted_insert, width, label="Sorted", color="coral") + axes[0].set_xticks(x) + axes[0].set_xticklabels(structures) + axes[0].set_ylabel("Time (sec)") + axes[0].set_title("Insert") + axes[0].legend() + axes[0].grid(True) + + axes[1].bar(x - width / 2, random_search, width, label="Random", color="steelblue") + axes[1].bar(x + width / 2, sorted_search, width, label="Sorted", color="coral") + axes[1].set_xticks(x) + axes[1].set_xticklabels(structures) + axes[1].set_ylabel("Time (sec)") + axes[1].set_title("Search") + axes[1].legend() + axes[1].grid(True) + + axes[2].bar(x - width / 2, random_delete, width, label="Random", color="steelblue") + axes[2].bar(x + width / 2, sorted_delete, width, label="Sorted", color="coral") + axes[2].set_xticks(x) + axes[2].set_xticklabels(structures) + axes[2].set_ylabel("Time (sec)") + axes[2].set_title("Delete") + axes[2].legend() + axes[2].grid(True) + + plt.tight_layout() + + + plt.savefig(graph_path, dpi=300) + print(f"Graph saved to {graph_path}") + + + plt.show() + + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/ShulpinIN/datastructure_lab1/docs/README.md b/ShulpinIN/datastructure_lab1/docs/README.md new file mode 100644 index 0000000..45a0a50 --- /dev/null +++ b/ShulpinIN/datastructure_lab1/docs/README.md @@ -0,0 +1,33 @@ + + +В ходе выполнения работы было установлено, что производительность каждой из трёх реализованных структур данных существенно зависит от их внутреннего устройства, а также от характера и порядка входных данных. + +Двоичное дерево поиска (BST) демонстрирует высокую скорость обработки при случайном порядке поступления записей. Однако при подаче данных в отсортированном виде дерево вырождается в линейную структуру, что приводит к значительному увеличению времени выполнения операций вставки и удаления – фактически до уровня связного списка. + +Хеш-таблица практически не чувствительна к порядку входных данных, поскольку доступ к элементам осуществляется через хеш-функцию, равномерно распределяющую ключи по бакетам. Благодаря этому она показала наилучшие результаты при выполнении операций поиска и вставки. +Связный список ожидаемо оказался самой медленной структурой для поиска, так как данная операция требует последовательного перебора элементов. + +Операция удаления также имеет свои особенности. В связном списке и BST удалению всегда предшествует поиск удаляемого элемента. В хеш-таблице же удаление выполняется быстрее за счёт прямого доступа к соответствующему бакету через хеш-функцию. + + + +Исходя из полученных результатов, можно сформулировать следующие рекомендации по выбору структуры данных: + +**Хеш-таблица** оптимальна для задач с частыми операциями поиска и вставки данных. Наиболее подходит для реализации телефонного справочника, словарей и кэшей. +**Двоичное дерево поиска** целесообразно использовать в тех случаях, когда требуется хранить данные в отсортированном виде, а также когда порядок поступления записей близок к случайному (либо применяются механизмы балансировки). +**Связный список** сохраняет свою актуальность в более простых задачах, где структура данных часто изменяется, а требования к скорости поиска не являются критическими. + +## Количественные результаты + +Параметры эксперимента: N = 3000 записей. + +| Операция | LinkedList | HashTable | BST (random) | BST (sorted) | +|----------|------------|-----------|--------------|---------------| +| Вставка | 0.0235 с | 0.0012 с | 0.0057 с | 0.0457 с | +| Поиск | 0.0200 с | 0.0010 с | 0.0023 с | 0.0388 с | +| Удаление | 0.0123 с | 0.0012 с | 0.0035 с | 0.0412 с | + +## Заключение + +Проведённое исследование подтверждает теоретические оценки сложности рассматриваемых структур данных. Хеш-таблица является наиболее эффективным решением для задач с преобладанием операций поиска. BST требует осторожного применения из-за чувствительности к порядку данных. Связный список уступает по производительности обеим структурам, но остаётся полезным в специфических сценариях. + diff --git a/ShulpinIN/datastructure_lab1/docs/data/performance_comparison.png b/ShulpinIN/datastructure_lab1/docs/data/performance_comparison.png new file mode 100644 index 0000000000000000000000000000000000000000..28a6cca0bab1d9fa3fef469a2a5b9f9c65f59dff GIT binary patch literal 135664 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 literal 0 HcmV?d00001 diff --git a/ShulpinIN/datastructure_lab1/docs/data/results.csv b/ShulpinIN/datastructure_lab1/docs/data/results.csv new file mode 100644 index 0000000..389f296 --- /dev/null +++ b/ShulpinIN/datastructure_lab1/docs/data/results.csv @@ -0,0 +1,19 @@ +Structure,Mode,Operation,Time(sec) +LinkedList,random,insert,0.8583594001829624 +LinkedList,random,search_110,0.02630119980312884 +LinkedList,random,delete_50,0.011647899867966771 +BST,random,insert,0.023952200077474117 +BST,random,search_110,0.0007939999923110008 +BST,random,delete_50,0.00038039986975491047 +HashTable,random,insert,0.04777659988030791 +HashTable,random,search_110,0.0020123999565839767 +HashTable,random,delete_50,0.0011418000794947147 +LinkedList,sorted,insert,0.993753100046888 +LinkedList,sorted,search_110,0.025332099990919232 +LinkedList,sorted,delete_50,0.00999179994687438 +BST,sorted,insert,2.2590830998960882 +BST,sorted,search_110,0.0553144000004977 +BST,sorted,delete_50,0.03619979997165501 +HashTable,sorted,insert,0.049843299901112914 +HashTable,sorted,search_110,0.0013631999026983976 +HashTable,sorted,delete_50,0.0006238999776542187