diff --git a/KuzminskiyAA/Task 1/Dogs/Data/1.py b/KuzminskiyAA/Task 1/Dogs/Data/1.py index 359bcea..0c5b908 100644 --- a/KuzminskiyAA/Task 1/Dogs/Data/1.py +++ b/KuzminskiyAA/Task 1/Dogs/Data/1.py @@ -216,4 +216,35 @@ def plot_results(data_matrix): plt.tight_layout() plt.savefig('performance_graphs.png') - plt.show() \ No newline at end of file + plt.show() +random_data, sorted_data = generate_data(2000) + +structs = [ + ('LinkedList', lambda: None, ll_insert, ll_find, ll_delete), + ('HashTable', lambda: ht_create(2000), ht_insert, ht_find, ht_delete), + ('BST', lambda: None, bst_insert, bst_find, bst_delete) +] + +data_matrix = {'LinkedList': {'random': {}, 'sorted': {}}, + 'HashTable': {'random': {}, 'sorted': {}}, + 'BST': {'random': {}, 'sorted': {}}} + +for name, create, insert, find, delete in structs: + for order, data in [('random', random_data), ('sorted', sorted_data)]: + times = run_test(data, name, create, insert, find, delete) + data_matrix[name][order] = times + +with open('results.csv', 'w', newline='') as f: + writer = csv.writer(f) + writer.writerow(['структура', 'порядок_данных', 'операция', 'время_секунды']) + for name in ['LinkedList', 'HashTable', 'BST']: + for order in ['random', 'sorted']: + for op in ['insert', 'search', 'delete']: + writer.writerow([name, order, op, data_matrix[name][order][op]]) + +plot_results(data_matrix) + +print("\n РЕЗУЛЬТАТЫ") +for name in ['LinkedList', 'HashTable', 'BST']: + for order in ['random', 'sorted']: + print(f"{name} {order}: вставка={data_matrix[name][order]['insert']:.6f}, поиск={data_matrix[name][order]['search']:.6f}, удаление={data_matrix[name][order]['delete']:.6f}") \ No newline at end of file