Популярные алгоритмы обработки списков в Python: примеры программ
Python

Популярные алгоритмы обработки списков в Python: примеры программ

Razilator

Алгоритмы обработки списков являются важной темой в программировании. В этой статье мы рассмотрим самые популярные алгоритмы обработки списков на Python, а именно:

  1. Разбивка целого положительного числа по цифрам
  2. Программа, меняющая порядок следования элементов в списке
  3. Метод пузырька
  4. Сортировка методом выбора
  5. Алгоритм Евклида (поиск наибольшего общего делителя двух чисел)

Разбивка целого положительного числа по цифрам

Чтобы разбить целое положительное число по цифрам, можно использовать следующий алгоритм:

main.py
num = 12345
digits = [int(d) for d in str(num)]
print(digits) # [1, 2, 3, 4, 5]

Программа, меняющая порядок следования элементов в списке

Чтобы поменять порядок следования элементов в списке на обратный, можно использовать следующий алгоритм:

main.py
my_list = [1, 2, 3, 4, 5]
reversed_list = my_list[::-1]
print(reversed_list) # [5, 4, 3, 2, 1]

Метод пузырька на Python

Метод пузырька является одним из самых простых алгоритмов сортировки. Он основан на сравнении пар элементов списка и перестановке их местами в случае, если они находятся в неправильном порядке. Алгоритм повторяется до тех пор, пока список не будет отсортирован.

main.py
def bubble_sort(lst):
    n = len(lst)
    for i in range(n):
        for j in range(n - i - 1):
            if lst[j] > lst[j + 1]:
                lst[j], lst[j + 1] = lst[j + 1], lst[j]

my_list = [5, 2, 8, 6, 1, 9]
bubble_sort(my_list)
print(my_list) # [1, 2, 5, 6, 8, 9]

Сортировка методом выбора

Сортировка методом выбора (Selection sort) — это алгоритм сортировки, который на каждом шаге выбирает наименьший элемент из неотсортированной части массива и ставит его на своё место в отсортированной части.

main.py
def selection_sort(arr):
    for i in range(len(arr)):
        min_idx = i
        for j in range(i + 1, len(arr)):
            if arr[j] < arr[min_idx]:
                min_idx = j
        arr[i], arr[min_idx] = arr[min_idx], arr[i]
    return arr

# Пример использования
arr = [64, 25, 12, 22, 11]
sorted_arr = selection_sort(arr)
print(sorted_arr)
# Output: [11, 12, 22, 25, 64]

Алгоритм Евклида (поиск наибольшего общего делителя двух чисел)

Алгоритм Евклида — это алгоритм для нахождения наибольшего общего делителя двух целых чисел. Он основан на наблюдении, что если a больше, чем b, то НОД(a, b) также будет НОД(b, a%b).

main.py
def euclidean_algorithm(a, b):
    while b:
        a, b = b, a % b
    return a

# Пример использования
a = 60
b = 48
gcd = euclidean_algorithm(a, b)
print(gcd)
# Output: 12

Заключение

Python предоставляет различные алгоритмы обработки списков для обработки больших объемов данных.

Разбивка целого положительного числа по цифрам, программа, меняющая порядок следования элементов в списке, метод пузырька, сортировка методом выбора и алгоритм Евклида - это популярные алгоритмы обработки списков, которые помогают в обработке и сортировке больших объемов данных в Python.

;