Сортировка подсчётом в Python
Суть сортировки подсчётом заключается в преобразовании значений входных данных в ключи и сохранении их в дополнительном пространстве массива. Как сортировка с линейной временной сложностью, сортировка подсчётом требует, чтобы входные данные были целыми числами с определённым диапазоном.
Пример
def countSort(arr):
output = [0 for i in range(256)]
count = [0 for i in range(256)]
ans = ["" for _ in arr]
for i in arr:
count[ord(i)] += 1
for i in range(256):
count[i] += count[i-1]
for i in range(len(arr)):
output[count[ord(arr[i])]-1] = arr[i]
count[ord(arr[i])] -= 1
for i in range(len(arr)):
ans[i] = output[i]
return ans
arr = "wwwexamplecom"
ans = countSort(arr)
print ( "Отсортированный массив символов: %s" %("".join(ans)) )
Вывод после выполнения вышеприведённого кода:
符数组排序 bcmnoooruwwwДругие расширения
Python3 Примеры