Сортировка подсчётом в Python

Document 对象参考手册Python3 Примеры

Суть сортировки подсчётом заключается в преобразовании значений входных данных в ключи и сохранении их в дополнительном пространстве массива. Как сортировка с линейной временной сложностью, сортировка подсчётом требует, чтобы входные данные были целыми числами с определённым диапазоном.

Пример

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

Document 对象参考手册Python3 Примеры

Другие расширения