Добавил:
chrysler_a57_mltbnk
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:семестр 1 / sheker_sort
.py 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)
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
