There is no such a thing one clustering algorithm...Clustering of data is about create group of data values according a criteria...To pick your algorithm you first have to pick your criteria, like hierarchy, distribution, density and on and on...
A small
Google[
^] can bring you a lot of articles to learn about, including the implementation Microsoft has in SQL 2005-2014...