[1] 1-st-exercise #2

Open
volkovva wants to merge 15 commits from 1-st-exercise into develop
Showing only changes of commit a95db6edf3 - Show all commits

View File

@ -24,6 +24,7 @@ def ll_insert(head, name, phone):
return head return head
def ll_find(head, name): def ll_find(head, name):
current = head current = head
while current is not None: while current is not None:
if current['name'] == name: if current['name'] == name:
@ -32,6 +33,7 @@ def ll_find(head, name):
return None return None
def ll_delete(head, name): def ll_delete(head, name):
if head is None: if head is None:
return None return None
if head['name'] == name: if head['name'] == name:
@ -46,6 +48,7 @@ def ll_delete(head, name):
return head return head
def sort_records(lst): def sort_records(lst):
n = len(lst) n = len(lst)
for i in range(n): for i in range(n):
for j in range(0, n-i-1): for j in range(0, n-i-1):
@ -63,10 +66,11 @@ def ll_list_all(head):
return res return res
# 2. ХЕШ-ТАБЛИЦА # ХЕШ-ТАБЛИЦА
def def_hash(name, size): def def_hash(name, size):
hash_value = 0 hash_value = 0
for char in name: for char in name:
hash_value += ord(char) hash_value += ord(char)
@ -274,9 +278,13 @@ if __name__ == '__main__':
s_del += time_del s_del += time_del
results.append(["LinkedList", mode_name, "удаление", time_del]) results.append(["LinkedList", mode_name, "удаление", time_del])
print(f"LinkedList ({mode_name}) - Вставка: {s_ins/5:.5f} сек.") print(f" Связный список ({mode_name}) | Среднее за 5 замеров ")
print(f"LinkedList ({mode_name}) - Поиск: {s_fnd/5:.5f} сек.") print(f"Вставка: {s_ins/5:.5f} сек.")
print(f"LinkedList ({mode_name}) - Удаление: {s_del/5:.5f} сек.") print(f"Поиск: {s_fnd/5:.5f} сек.")
print(f"Удаление: {s_del/5:.5f} сек.")
print("-" * 40)
# ХЕШ-ТАБЛИЦА # ХЕШ-ТАБЛИЦА
@ -311,10 +319,11 @@ if __name__ == '__main__':
s_del += time_del s_del += time_del
results.append(["HashTable", mode_name, "удаление", time_del]) results.append(["HashTable", mode_name, "удаление", time_del])
print(f"HashTable ({mode_name}) - Вставка: {s_ins/5:.5f} сек.") print(f" Хеш-таблица ({mode_name}) | Среднее за 5 замеров ")
print(f"HashTable ({mode_name}) - Поиск: {s_fnd/5:.5f} сек.") print(f"Вставка: {s_ins/5:.5f} сек.")
print(f"HashTable ({mode_name}) - Удаление: {s_del/5:.5f} сек.") print(f"Поиск: {s_fnd/5:.5f} сек.")
print(f"Удаление: {s_del/5:.5f} сек.")
print("-" * 40)
# ДЕРЕВО # ДЕРЕВО
@ -349,10 +358,12 @@ if __name__ == '__main__':
s_del += time_del s_del += time_del
results.append(["BST", mode_name, "удаление", time_del]) results.append(["BST", mode_name, "удаление", time_del])
print(f"BST ({mode_name}) - Вставка: {s_ins/5:.5f} сек.") print(f"Двоичное дерево ({mode_name}) | Среднее за 5 замеров ")
print(f"BST ({mode_name}) - Поиск: {s_fnd/5:.5f} сек.") print(f"Вставка: {s_ins/5:.5f} сек.")
print(f"BST ({mode_name}) - Удаление: {s_del/5:.5f} сек.") print(f"Поиск: {s_fnd/5:.5f} сек.")
print(f"Удаление: {s_del/5:.5f} сек.")
print("-" * 40)
# Сохранение результатов
with open("docs/data/results.csv", "w", newline="", encoding="utf-8") as f: with open("docs/data/results.csv", "w", newline="", encoding="utf-8") as f:
writer = csv.writer(f) writer = csv.writer(f)
writer.writerows(results) writer.writerows(results)