initialize buckets_minimum
initialize buckets_maximum
range = max_element - min_element;
for i = 0 to array.length - 1
index = int(array[i] * num_buckets / range)
==== Нерекурсивная реализация ====
<wikitex>
function bucketSort Bucketsort(array, n) { initialize buckets ← <- new array of n empty lists range = max_element - min_element; for i = 0 to ( array.length - 1 index = int(array[i] * num_buckets / range) do insert array[i] into at end buckets[partition index] for i = 0 to num_buckets - 1 buckets[i] = insertionSort(arraybuckets[i], k)] intialize answer for i = 0 to n buckets_num - 1 do nextSort ( for k = 0 to buckets[i]).length - 1 return the concatenation of insert buckets[0i], ..., buckets[ n - 1k]аt end answer } return answer
</wikitex>
В данном псевдокоде функция partition возвращает для каждого объекта число от <tex>0</tex> до <tex>k - 1</tex>, причем partition монотонная функция.
nextSort {{---}} функция сортирующая массив.
==Асимптотика==
Пусть <tex>n</tex> {{---}} количество элементов в массиве, <tex>k</tex> {{---}} основание системы исчисления и