Размер шрифта
-
+

Компьютерные науки для начинающих: От алгоритмов до искусственного интеллекта - стр. 12

Примеры простых алгоритмов и их реализация.

Алгоритмы, как мы уже изучили, представляют собой сердцевину вычислительных задач, и теперь настало время рассмотреть их на конкретных примерах. Понимание простых алгоритмов и их реализация не только помогает лучше осознать принципы работы программирования, но и формирует базу для дальнейшего изучения более сложных концепций. В этой главе мы предложим несколько моделей простых алгоритмов, таких как сортировка, поиск и вычисление, которые широко применяются в различных сценариях.

Первый пример – алгоритм сортировки, который используется для упорядочивания данных. Наиболее понятной нам будет сортировка методом пузырька – простейший из известных методов. Данный алгоритм проходит по массиву элементов, сравнивая каждую пару соседних значений и меняя их местами, если они стоят в неверном порядке. В результате «пузырьки» наибольших значений всплывают на поверхность, что наглядно демонстрирует сам процесс.

Рассмотрим реализацию этого алгоритма на языке Python:


def bubble_sort(arr):


....n = len(arr)


....for i in range(n):


........for j in range(0, n-i-1):


............if arr[j] > arr[j+1]:


................arr[j], arr[j+1] = arr[j+1], arr[j]


....return arr

numbers = [64, 34, 25, 12, 22, 11, 90]


sorted_numbers = bubble_sort(numbers)


print("Отсортированный массив:", sorted_numbers)


Этот код сначала определяет функцию `bubble_sort`, которая принимает массив на вход. Внешний цикл отвечает за количество проходов по массиву, а внутренний цикл сравнивает элементы. Важным аспектом является простота этого алгоритма, однако на практике его использование не всегда оправдано из-за низкой эффективности при больших объемах данных. Здесь мы подходим к интересному моменту: в мире сортировки имеется множество алгоритмов, и каждый из них решает проблему по-своему. Понимая основы пузырьковой сортировки, вы сможете переходить к более сложным методам, таким как сортировка слиянием или быстрая сортировка.

Следующий пример – алгоритм поиска, который демонстрирует, как можно находить необходимые данные в массиве. Простейший способ – линейный поиск, при котором программа последовательно проверяет каждый элемент массива, пока не найдёт нужный. Хотя этот метод эффективен при небольших данных, он не подходит для больших наборов информации. Вместо этого могут использоваться более оптимизированные алгоритмы, такие как бинарный поиск, который требует предварительной сортировки.

Пример реализации линейного поиска выглядит следующим образом:

def linear_search(arr, target):


....for index, value in enumerate(arr):


........if value == target:


............return index


....return -1

elements = [10, 23, 45, 70, 12]


target = 45


result = linear_search(elements, target)


if result != -1:


....print("Элемент найден на позиции:", result)


else:


....print("Элемент не найден.")


В этом коде мы создаем функцию `linear_search`, которая перебирает элементы массива, сравнивая их с целевым значением `target`. Если элемент найден, функция возвращает его индекс, а если нет – возвращает -1. Это понятный и лаконичный подход к поиску данных, подчеркивающий важность алгоритмов в повседневной работе с массивами информации.

К примеру, вы можете встретить линейный поиск, решая задачи в социальных сетях, где необходимо найти профиль пользователя среди множества записей. Простота и наглядность алгоритмов делают их удобными для переноса на практике, и это приносит пользу в различных аспектах жизни.

Страница 12