Compute the distance/proximity matrix between the input data points, if necessary.
Let each data point be a cluster
Repeat
Merge the closest two clusters
Update the distance/proximity matrix
Until Only one cluster remains.