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

Ответы

Ответ дал: aleksworner
1

Ответ: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)

Вас заинтересует