Проверить что массив упорядочен по убыванию
from random import randint
def sort(nums):
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
a = []
for i in range(5):
a.append((1, 100))
print('first array :',a)
sort(a)
print('first sorted array :',a)
Ответы (1 шт):
Автор решения: Владислав Харламов
→ Ссылка
def check_sort(array):
return all([x > y for x, y in zip(array, array[1:])])
Функция all принимает итерируемый объект, она перебирает все его значения (приводя к булевому типу) и если они все дают True, то функция возращает True, иначе False. Понятно, чтобы сортировка была выполнена, все элементы должны в своем порядке убывать, поэтому мы создаем список и итерируемый по 0 и 1 индексу в исходном списке, далее 1 и 2 индексу и так далее, сравнивая их все по порядку. Прошу заметить, что конструкция elem_1 > elem_2 возращает True или False в зависимости от того, верно ли сравнение, поэтому функции all ничего приводить не нужно, а только остается проверить, что все элементы True.