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.