From 09e7e59f5521df55bdc4c391e53a0e3ff3f33e68 Mon Sep 17 00:00:00 2001 From: konnovaea Date: Sun, 26 Apr 2026 22:04:01 +0300 Subject: [PATCH] =?UTF-8?q?=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=BE=20csv=202.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- konnovaea/docs/data/results.csv | 109 ++++++++++++++++++++++++++++++++ konnovaea/docs/data/resurts.csv | 1 - konnovaea/experiments.py | 57 ++++++++--------- 3 files changed, 136 insertions(+), 31 deletions(-) create mode 100644 konnovaea/docs/data/results.csv delete mode 100644 konnovaea/docs/data/resurts.csv diff --git a/konnovaea/docs/data/results.csv b/konnovaea/docs/data/results.csv new file mode 100644 index 0000000..d02feb5 --- /dev/null +++ b/konnovaea/docs/data/results.csv @@ -0,0 +1,109 @@ +Структура, Режим, Операция, Замер, Время (сек) +LinkedList,случайный,вставка,1,0.0026327000014134683 +LinkedList,случайный,вставка,2,0.002111699999659322 +LinkedList,случайный,вставка,3,0.0032677000017429236 +LinkedList,случайный,вставка,4,0.001870000000053551 +LinkedList,случайный,вставка,5,0.0015884999993431848 +LinkedList,случайный,вставка,среднее,0.00229412000044249 +LinkedList,случайный,поиск,1,6.800000846851617e-06 +LinkedList,случайный,поиск,2,8.099999831756577e-06 +LinkedList,случайный,поиск,3,5.40000110049732e-06 +LinkedList,случайный,поиск,4,7.99999907030724e-06 +LinkedList,случайный,поиск,5,8.600000001024455e-06 +LinkedList,случайный,поиск,среднее,7.380000170087442e-06 +LinkedList,случайный,удаление,1,4.499997885432094e-06 +LinkedList,случайный,удаление,2,4.19999923906289e-06 +LinkedList,случайный,удаление,3,4.599998646881431e-06 +LinkedList,случайный,удаление,4,3.5999983083456755e-06 +LinkedList,случайный,удаление,5,5.800000508315861e-06 +LinkedList,случайный,удаление,среднее,4.53999891760759e-06 +HashTable,случайный,вставка,1,0.013042499998846324 +HashTable,случайный,вставка,2,0.010821200001373654 +HashTable,случайный,вставка,3,0.01149979999900097 +HashTable,случайный,вставка,4,0.012371500000881497 +HashTable,случайный,вставка,5,0.01258369999777642 +HashTable,случайный,вставка,среднее,0.012063739999575773 +HashTable,случайный,поиск,1,0.00011100000119768083 +HashTable,случайный,поиск,2,0.00012829999832320027 +HashTable,случайный,поиск,3,0.00010610000026645139 +HashTable,случайный,поиск,4,0.00015050000001792796 +HashTable,случайный,поиск,5,0.00011000000085914508 +HashTable,случайный,поиск,среднее,0.00012118000013288111 +HashTable,случайный,удаление,1,5.6700002460274845e-05 +HashTable,случайный,удаление,2,5.410000085248612e-05 +HashTable,случайный,удаление,3,0.000103599999420112 +HashTable,случайный,удаление,4,5.430000237538479e-05 +HashTable,случайный,удаление,5,0.00012520000018412247 +HashTable,случайный,удаление,среднее,7.878000105847605e-05 +BST,случайный,вставка,1,0.022040200001356425 +BST,случайный,вставка,2,0.02033830000073067 +BST,случайный,вставка,3,0.023025400001642993 +BST,случайный,вставка,4,0.021383999999670777 +BST,случайный,вставка,5,0.028112400003010407 +BST,случайный,вставка,среднее,0.022980060001282256 +BST,случайный,поиск,1,0.0003209000024071429 +BST,случайный,поиск,2,0.0002975999996124301 +BST,случайный,поиск,3,0.0002946999993582722 +BST,случайный,поиск,4,0.00029429999995045364 +BST,случайный,поиск,5,0.0003305000027467031 +BST,случайный,поиск,среднее,0.0003076000008150004 +BST,случайный,удаление,1,0.00019420000171521679 +BST,случайный,удаление,2,0.00015970000094966963 +BST,случайный,удаление,3,0.00017920000027515925 +BST,случайный,удаление,4,0.00023010000222711824 +BST,случайный,удаление,5,0.00015329999951063655 +BST,случайный,удаление,среднее,0.0001833000009355601 +LinkedList,отсортированный,вставка,1,0.001523099999758415 +LinkedList,отсортированный,вставка,2,0.0014689999989059288 +LinkedList,отсортированный,вставка,3,0.0020084999996470287 +LinkedList,отсортированный,вставка,4,0.001334699998551514 +LinkedList,отсортированный,вставка,5,0.0013204000024416018 +LinkedList,отсортированный,вставка,среднее,0.0015311399998608976 +LinkedList,отсортированный,поиск,1,6.199999916134402e-06 +LinkedList,отсортированный,поиск,2,7.699996785959229e-06 +LinkedList,отсортированный,поиск,3,1.049999991664663e-05 +LinkedList,отсортированный,поиск,4,1.6500001947861165e-05 +LinkedList,отсортированный,поиск,5,5.999998393235728e-06 +LinkedList,отсортированный,поиск,среднее,9.379999391967431e-06 +LinkedList,отсортированный,удаление,1,2.8000031306874007e-06 +LinkedList,отсортированный,удаление,2,4.300000000512227e-06 +LinkedList,отсортированный,удаление,3,3.2999996619764715e-06 +LinkedList,отсортированный,удаление,4,2.4999972083605826e-06 +LinkedList,отсортированный,удаление,5,1.179999890155159e-05 +LinkedList,отсортированный,удаление,среднее,4.9399997806176545e-06 +HashTable,отсортированный,вставка,1,0.00991520000025048 +HashTable,отсортированный,вставка,2,0.010728299999755109 +HashTable,отсортированный,вставка,3,0.010542399999394547 +HashTable,отсортированный,вставка,4,0.009933500001352513 +HashTable,отсортированный,вставка,5,0.010409299997263588 +HashTable,отсортированный,вставка,среднее,0.010305739999603247 +HashTable,отсортированный,поиск,1,0.0002734000008786097 +HashTable,отсортированный,поиск,2,0.00026509999952395447 +HashTable,отсортированный,поиск,3,0.00010439999823574908 +HashTable,отсортированный,поиск,4,0.00015179999900283292 +HashTable,отсортированный,поиск,5,0.0002571000004536472 +HashTable,отсортированный,поиск,среднее,0.00021035999961895868 +HashTable,отсортированный,удаление,1,5.560000136028975e-05 +HashTable,отсортированный,удаление,2,0.00011499999891384505 +HashTable,отсортированный,удаление,3,7.330000153160654e-05 +HashTable,отсортированный,удаление,4,0.00010929999916697852 +HashTable,отсортированный,удаление,5,5.330000203684904e-05 +HashTable,отсортированный,удаление,среднее,8.130000060191378e-05 +BST,отсортированный,вставка,1,7.89803430000029 +BST,отсортированный,вставка,2,10.66406199999983 +BST,отсортированный,вставка,3,4.9183209000002535 +BST,отсортированный,вставка,4,4.762505400001828 +BST,отсортированный,вставка,5,4.723310599998513 +BST,отсортированный,вставка,среднее,6.593246640000143 +BST,отсортированный,поиск,1,0.04402579999805312 +BST,отсортированный,поиск,2,0.04447000000072876 +BST,отсортированный,поиск,3,0.04556789999696775 +BST,отсортированный,поиск,4,0.04493789999833098 +BST,отсортированный,поиск,5,0.04496440000002622 +BST,отсортированный,поиск,среднее,0.044793199998821365 +BST,отсортированный,удаление,1,0.021394800001871772 +BST,отсортированный,удаление,2,0.02051940000092145 +BST,отсортированный,удаление,3,0.021468799997819588 +BST,отсортированный,удаление,4,0.02171239999734098 +BST,отсортированный,удаление,5,0.01968499999929918 +BST,отсортированный,удаление,среднее,0.020956079999450594 diff --git a/konnovaea/docs/data/resurts.csv b/konnovaea/docs/data/resurts.csv deleted file mode 100644 index cf27ee1..0000000 --- a/konnovaea/docs/data/resurts.csv +++ /dev/null @@ -1 +0,0 @@ -"['Структура', 'Режим', 'Операция', 'Номер_замера', 'Время(сек)']","['LinkedList', 'случайный', 'вставка', 1, 0.0019962000005762093]","['LinkedList', 'случайный', 'вставка', 2, 0.002358600002480671]","['LinkedList', 'случайный', 'вставка', 3, 0.00338009999904898]","['LinkedList', 'случайный', 'вставка', 4, 0.0017534999969939236]","['LinkedList', 'случайный', 'вставка', 5, 0.001513299997895956]","['LinkedList', 'вставка', 'среднее', 0.002200339999399148]","['LinkedList', 'случайный', 'поиск', 1, 7.200000254670158e-06]","['LinkedList', 'случайный', 'поиск', 2, 8.099999831756577e-06]","['LinkedList', 'случайный', 'поиск', 3, 5.800000508315861e-06]","['LinkedList', 'случайный', 'поиск', 4, 1.4799999917158857e-05]","['LinkedList', 'случайный', 'поиск', 5, 8.800001523923129e-06]","['LinkedList', 'поиск', 'среднее', 8.940000407164917e-06]","['LinkedList', 'случайный', 'удаление', 1, 3.5000011848751456e-06]","['LinkedList', 'случайный', 'удаление', 2, 4.1000021155923605e-06]","['LinkedList', 'случайный', 'удаление', 3, 5.500000042957254e-05]","['LinkedList', 'случайный', 'удаление', 4, 2.7999994927085936e-06]","['LinkedList', 'случайный', 'удаление', 5, 2.6000016077887267e-06]","['LinkedList', 'удаление', 'среднее', 1.3600000966107472e-05]","['HashTable', 'случайный', 'вставка', 1, 0.016466400000354042]","['HashTable', 'случайный', 'вставка', 2, 0.01572669999950449]","['HashTable', 'случайный', 'вставка', 3, 0.012243599998328136]","['HashTable', 'случайный', 'вставка', 4, 0.012327000000368571]","['HashTable', 'случайный', 'вставка', 5, 0.01224759999968228]","['HashTable', 'вставка', 'среднее', 0.013802259999647504]","['HashTable', 'случайный', 'поиск', 1, 0.0003924999982700683]","['HashTable', 'случайный', 'поиск', 2, 0.00015640000128769316]","['HashTable', 'случайный', 'поиск', 3, 0.00021699999706470408]","['HashTable', 'случайный', 'поиск', 4, 0.0001894999986689072]","['HashTable', 'случайный', 'поиск', 5, 0.00010560000009718351]","['HashTable', 'поиск', 'среднее', 0.00021219999907771126]","['HashTable', 'случайный', 'удаление', 1, 5.8900001022266224e-05]","['HashTable', 'случайный', 'удаление', 2, 5.48999996681232e-05]","['HashTable', 'случайный', 'удаление', 3, 5.3499999921768904e-05]","['HashTable', 'случайный', 'удаление', 4, 5.569999848376028e-05]","['HashTable', 'случайный', 'удаление', 5, 5.270000110613182e-05]","['HashTable', 'удаление', 'среднее', 5.514000004041009e-05]","['BST', 'случайный', 'вставка', 1, 0.02389969999785535]","['BST', 'случайный', 'вставка', 2, 0.0244684999997844]","['BST', 'случайный', 'вставка', 3, 0.026340499996877043]","['BST', 'случайный', 'вставка', 4, 0.02651980000155163]","['BST', 'случайный', 'вставка', 5, 0.023325299996940885]","['BST', 'вставка', 'среднее', 0.024910759998601862]","['BST', 'случайный', 'поиск', 1, 0.0002482999989297241]","['BST', 'случайный', 'поиск', 2, 0.0002702000019780826]","['BST', 'случайный', 'поиск', 3, 0.0002458000017213635]","['BST', 'случайный', 'поиск', 4, 0.00024990000019897707]","['BST', 'случайный', 'поиск', 5, 0.00025649999952293]","['BST', 'поиск', 'среднее', 0.0002541400004702155]","['BST', 'случайный', 'удаление', 1, 0.00017699999807518907]","['BST', 'случайный', 'удаление', 2, 0.00020430000222404487]","['BST', 'случайный', 'удаление', 3, 0.00013140000010025688]","['BST', 'случайный', 'удаление', 4, 0.00014169999849400483]","['BST', 'случайный', 'удаление', 5, 0.00016059999688877724]","['BST', 'удаление', 'среднее', 0.00016299999915645458]","['LinkedList', 'отсортированный', 'вставка', 1, 0.002340299997740658]","['LinkedList', 'отсортированный', 'вставка', 2, 0.001320899998972891]","['LinkedList', 'отсортированный', 'вставка', 3, 0.001245399998879293]","['LinkedList', 'отсортированный', 'вставка', 4, 0.001359599998977501]","['LinkedList', 'отсортированный', 'вставка', 5, 0.0013001999977859668]","['LinkedList', 'вставка', 'среднее', 0.001513279998471262]","['LinkedList', 'отсортированный', 'поиск', 1, 8.799997885944322e-06]","['LinkedList', 'отсортированный', 'поиск', 2, 7.90000194683671e-06]","['LinkedList', 'отсортированный', 'поиск', 3, 5.49999822396785e-06]","['LinkedList', 'отсортированный', 'поиск', 4, 5.40000110049732e-06]","['LinkedList', 'отсортированный', 'поиск', 5, 5.300000339047983e-06]","['LinkedList', 'поиск', 'среднее', 6.5799998992588374e-06]","['LinkedList', 'отсортированный', 'удаление', 1, 4.2400002712383866e-05]","['LinkedList', 'отсортированный', 'удаление', 2, 3.5000011848751456e-06]","['LinkedList', 'отсортированный', 'удаление', 3, 2.9000002541579306e-06]","['LinkedList', 'отсортированный', 'удаление', 4, 5.800000508315861e-06]","['LinkedList', 'отсортированный', 'удаление', 5, 4.800000169780105e-06]","['LinkedList', 'удаление', 'среднее', 1.1880000965902581e-05]","['HashTable', 'отсортированный', 'вставка', 1, 0.01072819999899366]","['HashTable', 'отсортированный', 'вставка', 2, 0.010679200000595301]","['HashTable', 'отсортированный', 'вставка', 3, 0.010472300000401447]","['HashTable', 'отсортированный', 'вставка', 4, 0.011017800003173761]","['HashTable', 'отсортированный', 'вставка', 5, 0.010098599999764701]","['HashTable', 'вставка', 'среднее', 0.010599220000585774]","['HashTable', 'отсортированный', 'поиск', 1, 0.00010120000297320075]","['HashTable', 'отсортированный', 'поиск', 2, 0.0003209000024071429]","['HashTable', 'отсортированный', 'поиск', 3, 0.00010620000102790073]","['HashTable', 'отсортированный', 'поиск', 4, 0.00013010000111535192]","['HashTable', 'отсортированный', 'поиск', 5, 0.00011129999984405003]","['HashTable', 'поиск', 'среднее', 0.00015394000147352926]","['HashTable', 'отсортированный', 'удаление', 1, 5.6400000175926834e-05]","['HashTable', 'отсортированный', 'удаление', 2, 5.2999999752501026e-05]","['HashTable', 'отсортированный', 'удаление', 3, 5.6499997299397364e-05]","['HashTable', 'отсортированный', 'удаление', 4, 9.620000128052197e-05]","['HashTable', 'отсортированный', 'удаление', 5, 4.959999932907522e-05]","['HashTable', 'удаление', 'среднее', 6.233999956748449e-05]","['BST', 'отсортированный', 'вставка', 1, 5.633519200000592]","['BST', 'отсортированный', 'вставка', 2, 5.523590500000864]","['BST', 'отсортированный', 'вставка', 3, 5.242755499999475]","['BST', 'отсортированный', 'вставка', 4, 5.394866700000421]","['BST', 'отсортированный', 'вставка', 5, 5.2476690000003146]","['BST', 'вставка', 'среднее', 5.408480180000334]","['BST', 'отсортированный', 'поиск', 1, 0.047546699999656994]","['BST', 'отсортированный', 'поиск', 2, 0.049641900001006434]","['BST', 'отсортированный', 'поиск', 3, 0.04535329999998794]","['BST', 'отсортированный', 'поиск', 4, 0.04351699999824632]","['BST', 'отсортированный', 'поиск', 5, 0.04374180000013439]","['BST', 'поиск', 'среднее', 0.045960139999806415]","['BST', 'отсортированный', 'удаление', 1, 0.02838540000084322]","['BST', 'отсортированный', 'удаление', 2, 0.028794899997592438]","['BST', 'отсортированный', 'удаление', 3, 0.027610299999651033]","['BST', 'отсортированный', 'удаление', 4, 0.03072009999959846]","['BST', 'отсортированный', 'удаление', 5, 0.0289465999994718]","['BST', 'удаление', 'среднее', 0.02889145999943139]" diff --git a/konnovaea/experiments.py b/konnovaea/experiments.py index c1ea7ea..349e57b 100644 --- a/konnovaea/experiments.py +++ b/konnovaea/experiments.py @@ -225,37 +225,34 @@ def run_bst_experiments(records, mode_name): 'delete_avg': avg_delete, 'delete_all': delete_times } -def save_result_to_csv(all_results): +def save_results_to_csv(all_results): + os.makedirs("docs/data", exist_ok=True) - - csv_rows = [] - - csv_rows.append(["Структура", "Режим", "Операция", "Номер_замера", "Время(сек)"]) - - for res in all_results: - struct = res['structure'] - mode = res['mode'] - - for i, t in enumerate(res['insert_all']): - csv_rows.append([struct, mode, "вставка", i+1, t]) - - csv_rows.append([struct, "вставка", "среднее", res['insert_avg']]) - - for i, t in enumerate(res['find_all']): - csv_rows.append([struct, mode, "поиск", i+1, t]) - - csv_rows.append([struct, "поиск", "среднее", res['find_avg']]) - - for i, t in enumerate(res['delete_all']): - csv_rows.append([struct, mode, "удаление", i+1, t]) - - csv_rows.append([struct, "удаление", "среднее", res['delete_avg']]) - - with open("docs/data/results.csv", "w", newline="", encoding="utf-8") as f: - writer = csv.writer(f) - writer.writerow(csv_rows) - print(f"\nрезультаты сохранены") + + with open("docs/data/results.csv", "w", encoding="utf-8") as f: + + f.write("Структура, Режим, Операция, Замер, Время (сек)\n") + + for res in all_results: + struct = res['structure'] + mode = res['mode'] + + + for i, t in enumerate(res['insert_all']): + f.write(f"{struct},{mode},вставка,{i+1},{t}\n") + f.write(f"{struct},{mode},вставка,среднее,{res['insert_avg']}\n") + + + for i, t in enumerate(res['find_all']): + f.write(f"{struct},{mode},поиск,{i+1},{t}\n") + f.write(f"{struct},{mode},поиск,среднее,{res['find_avg']}\n") + + + for i, t in enumerate(res['delete_all']): + f.write(f"{struct},{mode},удаление,{i+1},{t}\n") + f.write(f"{struct},{mode},удаление,среднее,{res['delete_avg']}\n") + def main(): print("эксперименты по замеру производительности") @@ -276,7 +273,7 @@ def main(): all_results.append(run_hash_experiments(records_sorted, "отсортированный")) all_results.append(run_bst_experiments(records_sorted, "отсортированный")) - save_result_to_csv(all_results) + save_results_to_csv(all_results) if __name__== "__main__": main()