The present paper discusses a nonparametric algorithm for detecting clusters. In the algorithm a positive value called potential is associated with each datum based on dissimilarities. By defining subordination relations among data, hierarchical structure is introduced into the data set. As a result of the introduction of hierarchical structure, the data set is divided into some subsets called subclusters. A procedure for constructing clusters from the subclusters is also considered. The proposed algorithm can be applied to a very wide range of data set and has great ability to detect clusters, which is verified by computer simulation.