[1] data structures #182
91
lomakinae/docs/data/01/results.csv
Normal file
91
lomakinae/docs/data/01/results.csv
Normal 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
|
||||
|
0
lomakinae/docs/data/01/src/__init__.py
Normal file
0
lomakinae/docs/data/01/src/__init__.py
Normal 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):
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
Gitea Version: 1.22.0 |
