problem with sorted list, needs rework in data generation
This commit is contained in:
parent
776ce4eec6
commit
fae14e7d1f
|
|
@ -1,4 +1,4 @@
|
||||||
import random, time
|
import random, time, csv
|
||||||
N = []
|
N = []
|
||||||
|
|
||||||
for n in range(10000): # вот сначала просят сгенерировать а потом 100 гарантированных имён ну ёмаё💀💀💀
|
for n in range(10000): # вот сначала просят сгенерировать а потом 100 гарантированных имён ну ёмаё💀💀💀
|
||||||
|
|
@ -6,12 +6,16 @@ for n in range(10000): # вот сначала просят сгенериров
|
||||||
p = random.randint(10000000, 99999999)
|
p = random.randint(10000000, 99999999)
|
||||||
N.append((f"User_{i:05d}", str(p))) # как в примере кортежики брбрбр
|
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):
|
def ll_insert(head, name, phone):
|
||||||
|
|
||||||
data = {'name' : name, 'phone' : phone, "next" : None}
|
data = {'name' : name, 'phone' : phone, "next" : None}
|
||||||
|
|
||||||
if head is None: # я люблю делать бесполезные проверки
|
if head is None:
|
||||||
return data
|
return data
|
||||||
|
|
||||||
current = head
|
current = head
|
||||||
while current:
|
while current:
|
||||||
if current['name'] == name:
|
if current['name'] == name:
|
||||||
|
|
@ -36,7 +40,6 @@ def ll_find(head, name):
|
||||||
def ll_delete(head, name):
|
def ll_delete(head, name):
|
||||||
if head is None:
|
if head is None:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
prev = head
|
prev = head
|
||||||
current = head['next']
|
current = head['next']
|
||||||
while current:
|
while current:
|
||||||
|
|
@ -64,7 +67,26 @@ data_unsorted = None
|
||||||
for name, phone in N:
|
for name, phone in N:
|
||||||
data_unsorted = ll_insert(data_unsorted, name, phone)
|
data_unsorted = ll_insert(data_unsorted, name, phone)
|
||||||
end_time = time.perf_counter()
|
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)
|
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
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user