Простые методы сортировки


Download 33.28 Kb.
Sana24.12.2022
Hajmi33.28 Kb.
#1050578
TuriЛабораторная работа
Bog'liq
3-ïáí«ÓáÔ«Ó¡á´


Чупанов Отажон 943-20
Лабораторная работа №3
Тема: Простые методы сортировки
Алгоритм сортировки — это алгоритм для упорядочивания элементов в списке. В случае, когда элемент списка имеет несколько полей, поле, служащее критерием порядка, называется ключом сортировки. На практике в качестве ключа часто выступает число, а в остальных полях хранятся какие-либо данные, никак не влияющие на работу алгоритма.
Сортировка выбором
Идея метода состоит в том, чтобы создавать отсортированную последовательность путем присоединения к ней одного элемента за другим в правильном порядке.
Будем строить готовую последовательность, начиная с левого конца массива. Алгоритм состоит из n последовательных шагов, начиная от нулевого и заканчивая (n-1)-м.

Сортировка пузырьком
Расположим массив сверху вниз, от нулевого элемента - к последнему.
Идея метода: шаг сортировки состоит в проходе снизу вверх по массиву. По пути просматриваются пары соседних элементов. Если элементы некоторой пары находятся в неправильном порядке, то меняем их местами
Задания 10
Ваня идет поздней ночью по прямолинейной улице длины l, которая освещается n фонарями. Введём систему координат, в которой начало улицы соответствует точке 0, а её конец — точке l. Тогда i-й фонарь находится в точке ai. Фонарь освещает все точки улицы, которые находятся от него на расстоянии не больше d, где d — некоторое положительное число, общее для всех фонарей.
Входные данные
В первой строке записаны два целых числа nl (1 ≤ n ≤ 1000, 1 ≤ l ≤ 109) — количество фонарей и длина улицы соответственно.
В следующей строке записано n целых чисел ai (0 ≤ ai ≤ l). Несколько фонарей могут находиться в одной точке. Фонари могут находиться в концах улицы.
Выходные данные
Выведите минимальный радиус освещения d, который необходим, чтобы осветить всю улицу. Ответ будет считаться правильным, если его абсолютная или относительная погрешность не превышает 10 - 9
n, l = map(int, input().split())
lights = list(set([0] + sorted([int(i) for i in input().split()]) + [1]))
count = len(lights)

average = []


for light in range(count - 1, 0, -1):


average.append(lights[light] - lights[light - 1])
lig_max = max(average)
lig_min = min(average)

if lig_min < lig_max/2:


print(lig_max/2)
else:
print(lig_min)


Download 33.28 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling