Структуры и алгоритмы данных Python: сортировка списка элементов с использованием сортировки Radix
Поиск и сортировка Python: упражнение 19 с решением
Напишите программу на Python для сортировки списка элементов с использованием сортировки Radix.
Согласно Википедии «В компьютерной науке радикальная сортировка представляет собой не сравнительный алгоритм целочисленной сортировки, который сортирует данные по целочисленным ключам путем группировки ключей по отдельным цифрам, которые имеют одинаковые значимые позиции и значения».
Пример решения :
Код Python:
def radix_sort(nums):
RADIX = 10
placement = 1
max_digit = max(nums)
while placement < max_digit:
buckets = [list() for _ in range( RADIX )]
for i in nums:
tmp = int((i / placement) % RADIX)
buckets[tmp].append(i)
a = 0
for b in range( RADIX ):
buck = buckets[b]
for i in buck:
nums[a] = i
a += 1
placement *= RADIX
return nums
user_input = input("Input numbers separated by a comma:\n").strip()
nums = [int(item) for item in user_input.split(',')]
print(radix_sort(nums))
Пример вывода:
Введите числа, разделенные запятой: 15, 79, 25, 68, 37 [15, 25, 37, 68, 79]
Блок - схема:
Редактор кода Python:
Внесите свой код и комментарии через Disqus.
Предыдущий: Напишите программу на Python для сортировки списка элементов, используя сортировку Pancake.
Далее: Напишите программу на Python для сортировки списка элементов, используя сортировку Selection.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования