problem with sorted list, needs rework in data generation

This commit is contained in:
mddcorporation 2026-02-28 19:36:32 +03:00
parent 776ce4eec6
commit fae14e7d1f

View File

@ -1,4 +1,4 @@
import random, time
import random, time, csv
N = []
for n in range(10000): # вот сначала просят сгенерировать а потом 100 гарантированных имён ну ёмаё💀💀💀
@ -6,12 +6,16 @@ for n in range(10000): # вот сначала просят сгенериров
p = random.randint(10000000, 99999999)
N.append((f"User_{i:05d}", str(p))) # как в примере кортежики брбрбр
#короче тупо в лоб, там всё равно вставка списка повторы не допускает (ну телефон обновится)
for i in range(100):
N.append((f"User_{i:05d}", str(f'{i:08d}')))
def ll_insert(head, name, phone):
data = {'name' : name, 'phone' : phone, "next" : None}
if head is None: # я люблю делать бесполезные проверки
if head is None:
return data
current = head
while current:
if current['name'] == name:
@ -36,7 +40,6 @@ def ll_find(head, name):
def ll_delete(head, name):
if head is None:
return None
prev = head
current = head['next']
while current:
@ -64,7 +67,26 @@ data_unsorted = None
for name, phone in N:
data_unsorted = ll_insert(data_unsorted, name, phone)
end_time = time.perf_counter()
elapsed_time = end_time - start_time
elapsed_time_1_1 = end_time - start_time
start_time = time.perf_counter()
data_sorted = ll_list_all(data_unsorted)
end_time = time.perf_counter() # правильно ли я сделал? навряд-ли
elapsed_time_1_2 = end_time - start_time
#2 - по поиску
start_time = time.perf_counter()
for i in range(100):
ll_find(data_unsorted, f'User_{i:05d}')
for i in range(10):
ll_find(data_unsorted, f'None_{i:05d}')
end_time = time.perf_counter()
elapsed_time_2_1 = end_time - start_time
start_time = time.perf_counter()
for i in range(100):
ll_find(data_sorted, f'User_{i:05d}')
for i in range(10):
ll_find(data_sorted, f'None_{i:05d}')
end_time = time.perf_counter()
elapsed_time_2_2 = end_time - start_time