Одним из классических примеров алгоритма, содержащего повторение, является алгоритм сортировки методом пузырька (bubble sort). Этот алгоритм используется для упорядочивания элементов списка или массива.
Вот как работает алгоритм сортировки методом пузырька:
Начальный массив: Предположим, у нас есть массив чисел, который мы хотим отсортировать в порядке возрастания.
Повторение: Алгоритм использует вложенный цикл для прохода по массиву несколько раз. На каждом проходе он сравнивает каждую пару соседних элементов.
Сравнение и обмен: Если текущий элемент больше следующего, то элементы меняются местами. Таким образом, наибольший элемент "всплывает" к концу массива, как пузырек в воде.
Повторение процесса: Процесс повторяется для оставшихся неотсортированных элементов. Каждый последующий проход обрабатывает на один элемент меньше, так как после каждого полного прохода последний элемент оказывается на своей окончательной позиции.
Завершение: Алгоритм завершается, когда при очередном проходе не происходит ни одного обмена, что означает, что массив полностью отсортирован.
Вот пример реализации алгоритма сортировки методом пузырька на Python:
def bubble_sort(arr):
n = len(arr)
for i in range(n):
# Устанавливаем флаг для отслеживания, произошел ли обмен
swapped = False
for j in range(0, n-i-1):
# Сравниваем элемент с соседним
if arr[j] > arr[j+1]:
# Меняем элементы местами
arr[j], arr[j+1] = arr[j+1], arr[j]
swapped = True
# Если не произошло ни одного обмена, массив отсортирован
if not swapped:
break
# Пример использования
numbers = [64, 34, 25, 12, 22, 11, 90]
bubble_sort(numbers)
print("Отсортированный массив:", numbers)
В этом примере алгоритм использует два вложенных цикла: внешний цикл проходит по всему массиву, а внутренний цикл выполняет сравнение и обмен соседних элементов. Основной признак наличия повторения в алгоритме — это циклы, которые позволяют выполнять одну и ту же последовательность действий до тех пор, пока не будет выполнено определенное условие.