It works as follows:
' A is the array ' n is the number of buckets ' MSBITS(n) returns the most significant bits of n. ' This could be k*n for sorting numbers, or ' the first character of n for sorting strings. ' NEXT-SORT is a sort algorithm BUCKET-SORT(A, n, MSBITS, NEXT-SORT): make array B of n lists for i = 1 to n: insert A[i] into list B[MSBITS(A[i])] for i = 0 to n - 1: NEXT-SORT(B[i]) concatenate the lists B...B[n-1] in order
Using BUCKET-SORT itself as the NEXT-SORT produces a relative of the radix sort. Using BUCKET-SORT with n == 2 and itself as the NEXT-SORT produces quicksort.