refactor: restructure project and fix relative imports

This commit is contained in:
lomakinae 2026-04-21 02:51:51 +03:00
parent 22ccd192ba
commit 11f600ea1c
6 changed files with 106 additions and 101 deletions

View File

@ -0,0 +1,91 @@
structure,mode,operation,run,time_sec
LinkedList,shuffled,insert,1,3.25562
LinkedList,shuffled,find,1,0.040773
LinkedList,shuffled,delete,1,0.026344
HashTable,shuffled,insert,1,0.033497
HashTable,shuffled,find,1,0.000593
HashTable,shuffled,delete,1,0.000348
BST,shuffled,insert,1,0.024071
BST,shuffled,find,1,0.000218
BST,shuffled,delete,1,0.000136
LinkedList,shuffled,insert,2,3.454281
LinkedList,shuffled,find,2,0.040282
LinkedList,shuffled,delete,2,0.026526
HashTable,shuffled,insert,2,0.031691
HashTable,shuffled,find,2,0.000568
HashTable,shuffled,delete,2,0.000338
BST,shuffled,insert,2,0.024978
BST,shuffled,find,2,0.000213
BST,shuffled,delete,2,0.000135
LinkedList,shuffled,insert,3,3.453681
LinkedList,shuffled,find,3,0.0404
LinkedList,shuffled,delete,3,0.026843
HashTable,shuffled,insert,3,0.031902
HashTable,shuffled,find,3,0.000536
HashTable,shuffled,delete,3,0.000319
BST,shuffled,insert,3,0.025369
BST,shuffled,find,3,0.000219
BST,shuffled,delete,3,0.000138
LinkedList,shuffled,insert,4,3.417185
LinkedList,shuffled,find,4,0.040816
LinkedList,shuffled,delete,4,0.027023
HashTable,shuffled,insert,4,0.037826
HashTable,shuffled,find,4,0.000582
HashTable,shuffled,delete,4,0.00033
BST,shuffled,insert,4,0.036423
BST,shuffled,find,4,0.000227
BST,shuffled,delete,4,0.00014
LinkedList,shuffled,insert,5,3.4723
LinkedList,shuffled,find,5,0.040734
LinkedList,shuffled,delete,5,0.027866
HashTable,shuffled,insert,5,0.031981
HashTable,shuffled,find,5,0.000546
HashTable,shuffled,delete,5,0.000332
BST,shuffled,insert,5,0.024578
BST,shuffled,find,5,0.000227
BST,shuffled,delete,5,0.000146
LinkedList,sorted,insert,1,3.271489
LinkedList,sorted,find,1,0.038886
LinkedList,sorted,delete,1,0.026646
HashTable,sorted,insert,1,0.030995
HashTable,sorted,find,1,0.000625
HashTable,sorted,delete,1,0.000302
BST,sorted,insert,1,13.000812
BST,sorted,find,1,0.128239
BST,sorted,delete,1,0.06369
LinkedList,sorted,insert,2,3.384572
LinkedList,sorted,find,2,0.03915
LinkedList,sorted,delete,2,0.026683
HashTable,sorted,insert,2,0.032596
HashTable,sorted,find,2,0.0006
HashTable,sorted,delete,2,0.000315
BST,sorted,insert,2,12.593249
BST,sorted,find,2,0.10657
BST,sorted,delete,2,0.058763
LinkedList,sorted,insert,3,3.27816
LinkedList,sorted,find,3,0.038938
LinkedList,sorted,delete,3,0.025567
HashTable,sorted,insert,3,0.03168
HashTable,sorted,find,3,0.000631
HashTable,sorted,delete,3,0.00031
BST,sorted,insert,3,12.809241
BST,sorted,find,3,0.110947
BST,sorted,delete,3,0.062604
LinkedList,sorted,insert,4,3.277437
LinkedList,sorted,find,4,0.039812
LinkedList,sorted,delete,4,0.025627
HashTable,sorted,insert,4,0.031844
HashTable,sorted,find,4,0.000917
HashTable,sorted,delete,4,0.000383
BST,sorted,insert,4,12.722063
BST,sorted,find,4,0.111841
BST,sorted,delete,4,0.060014
LinkedList,sorted,insert,5,3.261706
LinkedList,sorted,find,5,0.037981
LinkedList,sorted,delete,5,0.025241
HashTable,sorted,insert,5,0.032067
HashTable,sorted,find,5,0.000742
HashTable,sorted,delete,5,0.000342
BST,sorted,insert,5,12.713176
BST,sorted,find,5,0.108333
BST,sorted,delete,5,0.059109
1 structure mode operation run time_sec
2 LinkedList shuffled insert 1 3.25562
3 LinkedList shuffled find 1 0.040773
4 LinkedList shuffled delete 1 0.026344
5 HashTable shuffled insert 1 0.033497
6 HashTable shuffled find 1 0.000593
7 HashTable shuffled delete 1 0.000348
8 BST shuffled insert 1 0.024071
9 BST shuffled find 1 0.000218
10 BST shuffled delete 1 0.000136
11 LinkedList shuffled insert 2 3.454281
12 LinkedList shuffled find 2 0.040282
13 LinkedList shuffled delete 2 0.026526
14 HashTable shuffled insert 2 0.031691
15 HashTable shuffled find 2 0.000568
16 HashTable shuffled delete 2 0.000338
17 BST shuffled insert 2 0.024978
18 BST shuffled find 2 0.000213
19 BST shuffled delete 2 0.000135
20 LinkedList shuffled insert 3 3.453681
21 LinkedList shuffled find 3 0.0404
22 LinkedList shuffled delete 3 0.026843
23 HashTable shuffled insert 3 0.031902
24 HashTable shuffled find 3 0.000536
25 HashTable shuffled delete 3 0.000319
26 BST shuffled insert 3 0.025369
27 BST shuffled find 3 0.000219
28 BST shuffled delete 3 0.000138
29 LinkedList shuffled insert 4 3.417185
30 LinkedList shuffled find 4 0.040816
31 LinkedList shuffled delete 4 0.027023
32 HashTable shuffled insert 4 0.037826
33 HashTable shuffled find 4 0.000582
34 HashTable shuffled delete 4 0.00033
35 BST shuffled insert 4 0.036423
36 BST shuffled find 4 0.000227
37 BST shuffled delete 4 0.00014
38 LinkedList shuffled insert 5 3.4723
39 LinkedList shuffled find 5 0.040734
40 LinkedList shuffled delete 5 0.027866
41 HashTable shuffled insert 5 0.031981
42 HashTable shuffled find 5 0.000546
43 HashTable shuffled delete 5 0.000332
44 BST shuffled insert 5 0.024578
45 BST shuffled find 5 0.000227
46 BST shuffled delete 5 0.000146
47 LinkedList sorted insert 1 3.271489
48 LinkedList sorted find 1 0.038886
49 LinkedList sorted delete 1 0.026646
50 HashTable sorted insert 1 0.030995
51 HashTable sorted find 1 0.000625
52 HashTable sorted delete 1 0.000302
53 BST sorted insert 1 13.000812
54 BST sorted find 1 0.128239
55 BST sorted delete 1 0.06369
56 LinkedList sorted insert 2 3.384572
57 LinkedList sorted find 2 0.03915
58 LinkedList sorted delete 2 0.026683
59 HashTable sorted insert 2 0.032596
60 HashTable sorted find 2 0.0006
61 HashTable sorted delete 2 0.000315
62 BST sorted insert 2 12.593249
63 BST sorted find 2 0.10657
64 BST sorted delete 2 0.058763
65 LinkedList sorted insert 3 3.27816
66 LinkedList sorted find 3 0.038938
67 LinkedList sorted delete 3 0.025567
68 HashTable sorted insert 3 0.03168
69 HashTable sorted find 3 0.000631
70 HashTable sorted delete 3 0.00031
71 BST sorted insert 3 12.809241
72 BST sorted find 3 0.110947
73 BST sorted delete 3 0.062604
74 LinkedList sorted insert 4 3.277437
75 LinkedList sorted find 4 0.039812
76 LinkedList sorted delete 4 0.025627
77 HashTable sorted insert 4 0.031844
78 HashTable sorted find 4 0.000917
79 HashTable sorted delete 4 0.000383
80 BST sorted insert 4 12.722063
81 BST sorted find 4 0.111841
82 BST sorted delete 4 0.060014
83 LinkedList sorted insert 5 3.261706
84 LinkedList sorted find 5 0.037981
85 LinkedList sorted delete 5 0.025241
86 HashTable sorted insert 5 0.032067
87 HashTable sorted find 5 0.000742
88 HashTable sorted delete 5 0.000342
89 BST sorted insert 5 12.713176
90 BST sorted find 5 0.108333
91 BST sorted delete 5 0.059109

View File

View File

@ -1,7 +1,7 @@
import time
from ll import ll_insert, ll_find, ll_delete
from ht import ht_new, ht_insert, ht_find, ht_delete
from bst import bst_insert, bst_find, bst_delete
from .ll import ll_insert, ll_find, ll_delete
from .ht import ht_new, ht_insert, ht_find, ht_delete
from .bst import bst_insert, bst_find, bst_delete
def _build_ll(records):

View File

@ -1,9 +1,10 @@
import csv
import random
import sys
from pathlib import Path
from generator import generate_records, shuffle_records, sort_records, sample_existing, sample_nonexistent
from bench import run_once
from .generator import generate_records, shuffle_records, sort_records, sample_existing, sample_nonexistent
from .bench import run_once
N = 10000
RUNS = 5
@ -11,7 +12,8 @@ SEARCH_K = 100
SEARCH_MISSING_K = 10
DELETE_K = 50
sys.setrecursionlimit(15000)
BASE_DIR = Path(__file__).resolve().parent.parent
RESULT_PATH = BASE_DIR / "results.csv"
def run_experiment(records, mode):
search_names = sample_existing(records, SEARCH_K) + sample_nonexistent(SEARCH_MISSING_K)
@ -30,7 +32,7 @@ def run_experiment(records, mode):
return all_rows
if __name__ == '__main__':
def main_experiment():
random.seed(52)
records_base = generate_records(N)
@ -42,12 +44,15 @@ if __name__ == '__main__':
rows += run_experiment(records_sorted, 'sorted')
header = ['structure', 'mode', 'operation', 'run', 'time_sec']
output_path = 'results.csv'
output_path = RESULT_PATH
with open(output_path, 'w', newline='') as f:
writer = csv.writer(f)
writer.writerow(header)
writer.writerows(rows)
print(f"Done. Results saved to {output_path}")
print(f"Done. Results saved to {output_path.name}")
print(f"Total rows: {len(rows)}")
if __name__ == "__main__":
main_experiment()

View File

@ -1,4 +1,4 @@
from ll import ll_insert, ll_find, ll_delete, ll_list_all
from .ll import ll_insert, ll_find, ll_delete, ll_list_all
DEFAULT_SIZE = 128

View File

@ -1,91 +0,0 @@
structure,mode,operation,run,time_sec
LinkedList,shuffled,insert,1,3.146608
LinkedList,shuffled,find,1,0.038634
LinkedList,shuffled,delete,1,0.02447
HashTable,shuffled,insert,1,0.032404
HashTable,shuffled,find,1,0.000543
HashTable,shuffled,delete,1,0.000314
BST,shuffled,insert,1,0.024271
BST,shuffled,find,1,0.000238
BST,shuffled,delete,1,0.00014
LinkedList,shuffled,insert,2,3.360195
LinkedList,shuffled,find,2,0.038226
LinkedList,shuffled,delete,2,0.026174
HashTable,shuffled,insert,2,0.031514
HashTable,shuffled,find,2,0.000531
HashTable,shuffled,delete,2,0.000297
BST,shuffled,insert,2,0.025051
BST,shuffled,find,2,0.000227
BST,shuffled,delete,2,0.000134
LinkedList,shuffled,insert,3,3.298482
LinkedList,shuffled,find,3,0.038049
LinkedList,shuffled,delete,3,0.026032
HashTable,shuffled,insert,3,0.030625
HashTable,shuffled,find,3,0.000472
HashTable,shuffled,delete,3,0.000286
BST,shuffled,insert,3,0.023956
BST,shuffled,find,3,0.000218
BST,shuffled,delete,3,0.000128
LinkedList,shuffled,insert,4,3.342319
LinkedList,shuffled,find,4,0.038768
LinkedList,shuffled,delete,4,0.02615
HashTable,shuffled,insert,4,0.03061
HashTable,shuffled,find,4,0.000462
HashTable,shuffled,delete,4,0.000286
BST,shuffled,insert,4,0.023686
BST,shuffled,find,4,0.000213
BST,shuffled,delete,4,0.000132
LinkedList,shuffled,insert,5,3.376158
LinkedList,shuffled,find,5,0.039137
LinkedList,shuffled,delete,5,0.026008
HashTable,shuffled,insert,5,0.030944
HashTable,shuffled,find,5,0.000488
HashTable,shuffled,delete,5,0.000291
BST,shuffled,insert,5,0.022971
BST,shuffled,find,5,0.000214
BST,shuffled,delete,5,0.000135
LinkedList,sorted,insert,1,3.226524
LinkedList,sorted,find,1,0.03718
LinkedList,sorted,delete,1,0.0253
HashTable,sorted,insert,1,0.030623
HashTable,sorted,find,1,0.000491
HashTable,sorted,delete,1,0.000274
BST,sorted,insert,1,11.323304
BST,sorted,find,1,0.096899
BST,sorted,delete,1,0.053995
LinkedList,sorted,insert,2,3.3209
LinkedList,sorted,find,2,0.037479
LinkedList,sorted,delete,2,0.024458
HashTable,sorted,insert,2,0.030579
HashTable,sorted,find,2,0.000491
HashTable,sorted,delete,2,0.000274
BST,sorted,insert,2,11.633176
BST,sorted,find,2,0.098893
BST,sorted,delete,2,0.055018
LinkedList,sorted,insert,3,3.248168
LinkedList,sorted,find,3,0.036984
LinkedList,sorted,delete,3,0.025185
HashTable,sorted,insert,3,0.03095
HashTable,sorted,find,3,0.000482
HashTable,sorted,delete,3,0.000276
BST,sorted,insert,3,11.457209
BST,sorted,find,3,0.098241
BST,sorted,delete,3,0.054005
LinkedList,sorted,insert,4,3.175529
LinkedList,sorted,find,4,0.036891
LinkedList,sorted,delete,4,0.025014
HashTable,sorted,insert,4,0.030979
HashTable,sorted,find,4,0.000505
HashTable,sorted,delete,4,0.000284
BST,sorted,insert,4,11.49292
BST,sorted,find,4,0.099439
BST,sorted,delete,4,0.055095
LinkedList,sorted,insert,5,3.228069
LinkedList,sorted,find,5,0.03687
LinkedList,sorted,delete,5,0.025142
HashTable,sorted,insert,5,0.031015
HashTable,sorted,find,5,0.000505
HashTable,sorted,delete,5,0.00028
BST,sorted,insert,5,11.420234
BST,sorted,find,5,0.09862
BST,sorted,delete,5,0.054981
1 structure mode operation run time_sec
2 LinkedList shuffled insert 1 3.146608
3 LinkedList shuffled find 1 0.038634
4 LinkedList shuffled delete 1 0.02447
5 HashTable shuffled insert 1 0.032404
6 HashTable shuffled find 1 0.000543
7 HashTable shuffled delete 1 0.000314
8 BST shuffled insert 1 0.024271
9 BST shuffled find 1 0.000238
10 BST shuffled delete 1 0.00014
11 LinkedList shuffled insert 2 3.360195
12 LinkedList shuffled find 2 0.038226
13 LinkedList shuffled delete 2 0.026174
14 HashTable shuffled insert 2 0.031514
15 HashTable shuffled find 2 0.000531
16 HashTable shuffled delete 2 0.000297
17 BST shuffled insert 2 0.025051
18 BST shuffled find 2 0.000227
19 BST shuffled delete 2 0.000134
20 LinkedList shuffled insert 3 3.298482
21 LinkedList shuffled find 3 0.038049
22 LinkedList shuffled delete 3 0.026032
23 HashTable shuffled insert 3 0.030625
24 HashTable shuffled find 3 0.000472
25 HashTable shuffled delete 3 0.000286
26 BST shuffled insert 3 0.023956
27 BST shuffled find 3 0.000218
28 BST shuffled delete 3 0.000128
29 LinkedList shuffled insert 4 3.342319
30 LinkedList shuffled find 4 0.038768
31 LinkedList shuffled delete 4 0.02615
32 HashTable shuffled insert 4 0.03061
33 HashTable shuffled find 4 0.000462
34 HashTable shuffled delete 4 0.000286
35 BST shuffled insert 4 0.023686
36 BST shuffled find 4 0.000213
37 BST shuffled delete 4 0.000132
38 LinkedList shuffled insert 5 3.376158
39 LinkedList shuffled find 5 0.039137
40 LinkedList shuffled delete 5 0.026008
41 HashTable shuffled insert 5 0.030944
42 HashTable shuffled find 5 0.000488
43 HashTable shuffled delete 5 0.000291
44 BST shuffled insert 5 0.022971
45 BST shuffled find 5 0.000214
46 BST shuffled delete 5 0.000135
47 LinkedList sorted insert 1 3.226524
48 LinkedList sorted find 1 0.03718
49 LinkedList sorted delete 1 0.0253
50 HashTable sorted insert 1 0.030623
51 HashTable sorted find 1 0.000491
52 HashTable sorted delete 1 0.000274
53 BST sorted insert 1 11.323304
54 BST sorted find 1 0.096899
55 BST sorted delete 1 0.053995
56 LinkedList sorted insert 2 3.3209
57 LinkedList sorted find 2 0.037479
58 LinkedList sorted delete 2 0.024458
59 HashTable sorted insert 2 0.030579
60 HashTable sorted find 2 0.000491
61 HashTable sorted delete 2 0.000274
62 BST sorted insert 2 11.633176
63 BST sorted find 2 0.098893
64 BST sorted delete 2 0.055018
65 LinkedList sorted insert 3 3.248168
66 LinkedList sorted find 3 0.036984
67 LinkedList sorted delete 3 0.025185
68 HashTable sorted insert 3 0.03095
69 HashTable sorted find 3 0.000482
70 HashTable sorted delete 3 0.000276
71 BST sorted insert 3 11.457209
72 BST sorted find 3 0.098241
73 BST sorted delete 3 0.054005
74 LinkedList sorted insert 4 3.175529
75 LinkedList sorted find 4 0.036891
76 LinkedList sorted delete 4 0.025014
77 HashTable sorted insert 4 0.030979
78 HashTable sorted find 4 0.000505
79 HashTable sorted delete 4 0.000284
80 BST sorted insert 4 11.49292
81 BST sorted find 4 0.099439
82 BST sorted delete 4 0.055095
83 LinkedList sorted insert 5 3.228069
84 LinkedList sorted find 5 0.03687
85 LinkedList sorted delete 5 0.025142
86 HashTable sorted insert 5 0.031015
87 HashTable sorted find 5 0.000505
88 HashTable sorted delete 5 0.00028
89 BST sorted insert 5 11.420234
90 BST sorted find 5 0.09862
91 BST sorted delete 5 0.054981