Структуры данных и алгоритмы Python: сортировка списка элементов с использованием сортировки Gnome
Поиск и сортировка Python: упражнение 13 с решением
Напишите программу на Python для сортировки списка элементов с использованием сортировки Gnome.
Сортировка гномов - это алгоритм сортировки, первоначально предложенный доктором Хамидом Сарбази-Азадом (профессором вычислительной техники в Шарифском технологическом университете) в 2000 году и названный «глупой сортировкой» (не путать с богосортом), а затем описанный Диком. Грун и назвал "гномом рода". Алгоритм всегда находит первое место, где два соседних элемента находятся в неправильном порядке, и меняет их местами. Он использует тот факт, что выполнение обмена может привести к появлению новой неупорядоченной соседней пары только рядом с двумя замененными элементами.
Визуализация вида гномов :
Пример решения :
Код Python:
def gnome_sort(nums):
if len(nums) <= 1:
return nums
i = 1
while i < len(nums):
if nums[i-1] <= nums[i]:
i += 1
else:
nums[i-1], nums[i] = nums[i], nums[i-1]
i -= 1
if (i == 0):
i = 1
user_input = input("Input numbers separated by a comma:\n").strip()
nums = [int(item) for item in user_input.split(',')]
gnome_sort(nums)
print(nums)
Пример вывода:
Введите числа, разделенные запятой: 5, 79, 35, 68, 25 [5, 25, 35, 68, 79]
Блок - схема:
Редактор кода Python:
Внесите свой код и комментарии через Disqus.
Предыдущий: Напишите программу на Python для сортировки списка элементов, используя сортировку Bogosort.
Далее: Напишите программу на Python для сортировки списка элементов, используя сортировку Cocktail shaker.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования