Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

семестр 1 / sheker_sort

.py
Скачиваний:
0
Добавлен:
13.05.2026
Размер:
1.25 Кб
Скачать
import random
import time
random.seed(507)
seq10 = [random.random() for _ in range(10)]
seq100 = [random.random() for _ in range(100)]
seq1000 = [random.random() for _ in range(1000)]
n = 50

def comp(x,y):
return x < y

def mysortshecker(array, comporator):
l = len(array)
lb = 0
rb = l - 1
check = 1

while ((lb < rb) and check != 0):
check = 0
i = lb

while i < rb:
if comporator(array[i+1], array[i]):
#if (array[i] > array[i+1]):
tmp1 = array[i]
array[i] = array[i+1]
array[i+1] = tmp1
check = 1
i += 1
tmp1 = 0
rb -= 1
j = rb

while j > lb:
if comporator(array[j], array[j-1]):
#if array [j-1] > array[j]:
tmp2 = array[j]
array[j] = array[j-1]
array[j-1] = tmp2
check = 1
j -= 1
lb += 1

def sort_time(seq, n):
total_time = 0
for i in range(n):
start_time = time.perf_counter_ns()
mysortshecker(seq, comp)
end_time = time.perf_counter_ns()
total_time += end_time - start_time
print(f'Среднее время {n} сортировок массива из {len(seq)} элементов в наносекундах равно {total_time / n}')

sort_time(seq10,n)
sort_time(seq100,n)
sort_time(seq1000,n)
Соседние файлы в папке семестр 1