输入:聚类群组数M,集合O (包含N个样本点)

输出:聚类结果clusters (包含M个聚类簇)

1: 在集合O中任意取M个样本作为初始的聚类中心点

2: 循环开始

3: 对每个O中的非聚类中心点 O j ,进行:

4: 利用公式(12)计算相关性,将 O j 分配至相关性最相近的集群下

5: 随机选取一个非聚类中心点 O j

6: 利用公式(12)计算交换聚类中心点 O i O j 之后集群的总成本 C n e w

7: 如果 C n e w < C o l d

8: 用 O j 交换 O i ,形成一个新的M个聚类中心点的集合

9: 循环结束(满足迭代结束要求)

10: 返回集群聚类结果 c l u s t e r s