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'