写完了怕丢了,放在这里。不过写的不是很好,没有进行过优化~~
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace Similarity
{
class myClusterFun
{
public static int[][] CluEntran(int[][] HashArr, int NumberOfCenter)//聚类的函数的入口
{
//程序的初始化及参数的设定
int LoopTimesThres = 300;//设置最大的循环次数
int LoopTimes = 0;//循环次数
int JudgeConverg = 1;//记录是否收敛
int NumberOfDoc = HashArr.Length;//待比较的对象的数量
int AveCenterGap=0;
int LastAveCenterGap = 0;
int ConverCount = 0;
ArrayList ClusterResult = new ArrayList();//存储每次聚类结果
ArrayList NewCenter = new ArrayList();//存储每次聚类的新中心
ArrayList CenterGap = new ArrayList();//存储每次聚类中心的偏差
int[][] SingleClusterResult = new int[NumberOfCenter][];//暂存每次聚类的结果
int[][] SingleNewCenter = new int[NumberOfCenter][];//暂存每次聚类后形成的新的中心
int[][] SingleLastCenter = new int[NumberOfCenter][];//暂存每次聚类后形成的新的中心
int[] SingleCenterGap = new int[NumberOfCenter];//暂存每次聚类后中心的偏差情况
//初始化:确定初始中心
for (int i = 0; i < NumberOfCenter; i++)
{
SingleLastCenter[i] = new int[HashArr[0].Length];
SingleNewCenter[i] = new int[HashArr[0].Length];
}
int[] TempRec = new int[NumberOfCenter];
TempRec=InitialFunc(NumberOfCenter, NumberOfDoc);
for (int i = 0; i < NumberOfCenter; i++)