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

семестр 1 / sheker_sort

.py
Скачиваний:
0
Добавлен:
13.05.2026
Размер:
1 Кб
Скачать
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