
Популярные алгоритмы обработки списков в Python: примеры программ
Алгоритмы обработки списков являются важной темой в программировании. В этой статье мы рассмотрим самые популярные алгоритмы обработки списков на Python, а именно:
- Разбивка целого положительного числа по цифрам
- Программа, меняющая порядок следования элементов в списке
- Метод пузырька
- Сортировка методом выбора
- Алгоритм Евклида (поиск наибольшего общего делителя двух чисел)
Разбивка целого положительного числа по цифрам
Чтобы разбить целое положительное число по цифрам, можно использовать следующий алгоритм:
num = 12345
digits = [int(d) for d in str(num)]
print(digits) # [1, 2, 3, 4, 5]
Программа, меняющая порядок следования элементов в списке
Чтобы поменять порядок следования элементов в списке на обратный, можно использовать следующий алгоритм:
my_list = [1, 2, 3, 4, 5]
reversed_list = my_list[::-1]
print(reversed_list) # [5, 4, 3, 2, 1]
Метод пузырька на Python
Метод пузырька является одним из самых простых алгоритмов сортировки. Он основан на сравнении пар элементов списка и перестановке их местами в случае, если они находятся в неправильном порядке. Алгоритм повторяется до тех пор, пока список не будет отсортирован.
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) — это алгоритм сортировки, который на каждом шаге выбирает наименьший элемент из неотсортированной части массива и ставит его на своё место в отсортированной части.
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)
.
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.