a_deleteDuplicates(A[0...n-1]) :A'[0...n-1]
buildHeap(A) //as it's done in heapsort
for (i=n downto 2) do
temp := Heap.deleteMin
if (A'[i-1] != temp)
A'[i]:= temp
b_deleteDuplicates(A[0...n-1]) :A'[0...n-1]
for (i=0 to n-1) do
A'[i] := null
for (i=0 to n-1) do
h:= H(A[i]) //H ist universelle Hashfkt die ganzzahlig in [0,...,n-1] abbildet
A'[h]:= A[i]
return A'