Вопрос задан 17.06.2023 в 04:54. Предмет Информатика. Спрашивает Путилов Матвей.

Привести примеры алгоритмов на питоне

0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Симонов Марк.

Ответ:1алгорим:

def bubble_sort(nums):

# Устанавливаем swapped в True, чтобы цикл запустился хотя бы один раз

swapped = True

while swapped:

swapped = False

for i in range(len(nums) - 1):

if nums[i] > nums[i + 1]:

# Меняем элементы

nums[i], nums[i + 1] = nums[i + 1], nums[i]

# Устанавливаем swapped в True для следующей итерации

swapped = True

# Проверяем, что оно работает

random_list_of_nums = [5, 2, 1, 8, 4]

bubble_sort(random_list_of_nums)

print(random_list_of_nums)

2 алгоритм :

def selection_sort(nums):

# Значение i соответствует кол-ву отсортированных значений

for i in range(len(nums)):

# Исходно считаем наименьшим первый элемент

lowest_value_index = i

# Этот цикл перебирает несортированные элементы

for j in range(i + 1, len(nums)):

if nums[j] < nums[lowest_value_index]:

lowest_value_index = j

# Самый маленький элемент меняем с первым в списке

nums[i], nums[lowest_value_index] = nums[lowest_value_index], nums[i]

# Проверяем, что оно работает

random_list_of_nums = [12, 8, 3, 20, 11]

selection_sort(random_list_of_nums)

print(random_list_of_nums)

3 алгоритм

def insertion_sort(nums):

# Сортировку начинаем со второго элемента, т.к. считается, что первый элемент уже отсортирован

for i in range(1, len(nums)):

item_to_insert = nums[i]

# Сохраняем ссылку на индекс предыдущего элемента

j = i - 1

# Элементы отсортированного сегмента перемещаем вперёд, если они больше

# элемента для вставки

while j >= 0 and nums[j] > item_to_insert:

nums[j + 1] = nums[j]

j -= 1

# Вставляем элемент

nums[j + 1] = item_to_insert

# Проверяем, что оно работает

random_list_of_nums = [9, 1, 15, 28, 6]

insertion_sort(random_list_of_nums)

print(random_list_of_nums)

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Примеры алгоритмов на Python

Python является одним из самых популярных языков программирования, который широко используется для разработки алгоритмов. Вот несколько примеров алгоритмов на Python:

1. Сортировка пузырьком - это простой алгоритм сортировки, который проходит по списку несколько раз, сравнивая соседние элементы и меняя их местами, если они находятся в неправильном порядке. Процесс повторяется до тех пор, пока список не будет полностью отсортирован. Вот пример кода на Python для сортировки пузырьком:

```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

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

2. Бинарный поиск - это алгоритм поиска элемента в отсортированном списке путем деления списка пополам и сравнения искомого элемента с элементом в середине. Если элемент найден, алгоритм возвращает его индекс, в противном случае возвращает -1. Вот пример кода на Python для бинарного поиска:

```python def binary_search(arr, target): low = 0 high = len(arr) - 1

while low <= high: mid = (low + high) // 2 if arr[mid] == target: return mid elif arr[mid] < target: low = mid + 1 else: high = mid - 1

return -1

# Пример использования arr = [2, 5, 8, 12, 16, 23, 38, 56, 72, 91] target = 23 index = binary_search(arr, target) print(f"Индекс элемента {target}: {index}") ```

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

```python def euclidean_algorithm(a, b): while b != 0: a, b = b, a % b return a

# Пример использования num1 = 48 num2 = 36 gcd = euclidean_algorithm(num1, num2) print(f"Наибольший общий делитель чисел {num1} и {num2}: {gcd}") ```

4. Алгоритм поиска наименьшего общего кратного (НОК) - это алгоритм, который находит наименьшее число, которое делится на оба числа без остатка. Он основан на свойстве, что НОК(a, b) равен (a * b) / НОД(a, b), где НОД(a, b) - наибольший общий делитель. Вот пример кода на Python для алгоритма поиска НОК:

```python def least_common_multiple(a, b): gcd = euclidean_algorithm(a, b) lcm = (a * b) // gcd return lcm

# Пример использования num1 = 12 num2 = 18 lcm = least_common_multiple(num1, num2) print(f"Наименьшее общее кратное чисел {num1} и {num2}: {lcm}") ```

Это лишь несколько примеров алгоритмов на Python. Я надеюсь, что эти примеры помогут вам лучше понять, как реализовать алгоритмы на этом языке программирования. Если у вас есть еще вопросы, не стесняйтесь задавать!

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос