资源简介
层次聚类算法C++ VS2010 调试运行成功

代码片段和文件信息
#include “StdAfx.h“
#include “AgeneCluster.h“
#include
#include
#include
using namespace std;
CAgeneCluster::CAgeneCluster(void)
{
}
CAgeneCluster::~CAgeneCluster(void)
{
}
//计算两个样本点之间的欧几里得距离
double CAgeneCluster::getDistance(sDataPoint dpAsDataPoint dpB)
{
double distance=0;
distance= pow(dpA.x-dpB.x2) + pow(dpA.y-dpB.y2);
return distance;
}
list* CAgeneCluster::initialCluster(list *dataPoints)
{
list* originalClusters=new list ;
int i=0;
for(list::iterator iter = dataPoints->begin();iter != dataPoints->end();iter++)
{
sDataPoint tempDataPoint=*iter;//取出数据,
sCluster tempCluster;
tempCluster.clusterLabel=0;
tempCluster.datapointList=new list;
tempCluster.clusterLabel=i; //初始类簇号为各原数据顺序号
tempCluster.datapointList->push_back(tempDataPoint);
// tempCluster.datapointList.push_back();//每一个数据为一类
originalClusters->push_back(tempCluster);//originalClusters为类簇序列
i++;
}
return originalClusters;
}
list* CAgeneCluster::mergeCluster(list* clustersint mergeIndexAint mergeIndexB)//mergeIndexA B 是类簇标号
{
sCluster tempCluster tempClusterA tempClusterB;
int nBreak=0;//计算找到的次数,以提前退出循环,节省时间
if (mergeIndexA != mergeIndexB)//分属于不同的类簇则合并.
{ // 将cluster[mergeIndexB]中的DataPoint加入到 cluster[mergeIndexA]
for(list::iterator iter = clusters->begin();iter != clusters->end();iter++)
{//把mergeIndexA所在类簇提取出来。
tempCluster=*iter;//以下程序找出mergeIndexA and B所在类簇,并从链表中删除 B类簇。
if(tempCluster.clusterLabel==mergeIndexA)
{
nBreak++;//计算找到的次数,以提前退出循环,节省时间
tempClusterA= *iter;
}//end for if(tempCluster.clusterLabel==mergeIndexA)
if(tempCluster.clusterLabel==mergeIndexB)
{//并从链表中删除 B类簇。
tempClusterB=*iter;
nBreak++;//计算找到的次数,以提前退出循环,节省时间
if(clusters->size()==1)
{
clusters->erase(iter);
break;
}
else if(clusters->size()>1 && mergeIndexB==(*--clusters->end( )).clusterLabel)
{
clusters->erase( --clusters->end( ));
}
else if(clusters->size()>1 && mergeIndexB!=(*--clusters->end( )).clusterLabel)
{
iter=clusters->erase(iter);
if(iter!=clusters->begin())
iter--;
}
}//end for if(tempCluster.clusterLabel==mergeIndexB)
if(nBreak==2)
{//找到两个类簇,则提前退出循环,节省时间。
nBreak=0;
break;
}
} // end for for(list::iterator iter
list* dpA =new list;
dpA= tempClusterA.datapointList; //把clusterA中的数据集提取出来。
list* dpB =new list;
dpB= tempClusterB.datapointList;
for(list::iterator iter =
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 81408 2016-06-22 11:29 Hierarchical_Test\Debug\Hierarchical_Test.exe
文件 502208 2016-06-22 11:29 Hierarchical_Test\Debug\Hierarchical_Test.ilk
文件 814080 2016-06-22 11:29 Hierarchical_Test\Debug\Hierarchical_Test.pdb
文件 7004 2012-06-09 21:54 Hierarchical_Test\Hierarchical_Test\AgeneCluster.cpp
文件 781 2012-06-09 20:55 Hierarchical_Test\Hierarchical_Test\AgeneCluster.h
文件 122 2012-06-09 11:14 Hierarchical_Test\Hierarchical_Test\DataPoint.cpp
文件 100 2012-06-09 10:55 Hierarchical_Test\Hierarchical_Test\DataPoint.h
文件 265724 2016-06-22 11:29 Hierarchical_Test\Hierarchical_Test\Debug\AgeneCluster.obj
文件 3306 2016-06-22 11:29 Hierarchical_Test\Hierarchical_Test\Debug\cl.command.1.tlog
文件 24358 2016-06-22 11:29 Hierarchical_Test\Hierarchical_Test\Debug\CL.read.1.tlog
文件 2394 2016-06-22 11:29 Hierarchical_Test\Hierarchical_Test\Debug\CL.write.1.tlog
文件 3552 2016-06-22 11:29 Hierarchical_Test\Hierarchical_Test\Debug\DataPoint.obj
文件 2 2016-06-22 11:29 Hierarchical_Test\Hierarchical_Test\Debug\Hierarchical_Test.exe.em
文件 68 2016-06-22 11:29 Hierarchical_Test\Hierarchical_Test\Debug\Hierarchical_Test.exe.em
文件 64 2016-06-22 11:29 Hierarchical_Test\Hierarchical_Test\Debug\Hierarchical_Test.lastbuildstate
文件 1584 2016-06-22 11:29 Hierarchical_Test\Hierarchical_Test\Debug\Hierarchical_Test.log
文件 125317 2016-06-22 11:29 Hierarchical_Test\Hierarchical_Test\Debug\Hierarchical_Test.obj
文件 1179648 2016-06-22 11:29 Hierarchical_Test\Hierarchical_Test\Debug\Hierarchical_Test.pch
文件 0 2016-06-22 11:29 Hierarchical_Test\Hierarchical_Test\Debug\Hierarchical_Test.write.1.tlog
文件 224 2016-06-22 11:29 Hierarchical_Test\Hierarchical_Test\Debug\Hierarchical_Test_manifest.rc
文件 1776 2016-06-22 11:29 Hierarchical_Test\Hierarchical_Test\Debug\li
文件 3626 2016-06-22 11:29 Hierarchical_Test\Hierarchical_Test\Debug\li
文件 1018 2016-06-22 11:29 Hierarchical_Test\Hierarchical_Test\Debug\li
文件 684 2016-06-22 11:29 Hierarchical_Test\Hierarchical_Test\Debug\rc.command.1.tlog
文件 386 2016-06-22 11:29 Hierarchical_Test\Hierarchical_Test\Debug\rc.read.1.tlog
文件 394 2016-06-22 11:29 Hierarchical_Test\Hierarchical_Test\Debug\rc.write.1.tlog
文件 12135 2016-06-22 11:29 Hierarchical_Test\Hierarchical_Test\Debug\stdafx.obj
文件 371712 2016-06-22 11:29 Hierarchical_Test\Hierarchical_Test\Debug\vc100.idb
文件 339968 2016-06-22 11:29 Hierarchical_Test\Hierarchical_Test\Debug\vc100.pdb
文件 1480 2016-06-22 11:30 Hierarchical_Test\Hierarchical_Test\Hierarchical_Test.cpp
............此处省略19个文件信息
相关资源
- 国际象棋的qt源代码
- C++中头文件与源文件的作用详解
- C++多线程网络编程Socket
- VC++ 多线程文件读写操作
- 利用C++哈希表的方法实现电话号码查
- 移木块游戏,可以自编自玩,vc6.0编写
- C++纯文字DOS超小RPG游戏
- VC++MFC小游戏实例教程(实例)+MFC类库
- 连铸温度场计算程序(C++)
- 6自由度机器人运动学正反解C++程序
- Em算法(使用C++编写)
- libstdc++-4.4.7-4.el6.i686.rpm
- VC++实现CMD命令执行与获得返回信息
- 白话C++(全)
- C++标准库第1、2
- 大数类c++大数类
- C++语言编写串口调试助手
- c++素数筛选法
- C++ mqtt 用法
- 商品库存管理系统 C++ MFC
- c++ 多功能计算器
- C++17 In Detail
- 嵌入式QtC++编程课件
- 颜色识别形状识别STM103嵌入式代码
- c++ 邮件多附件群发
- c++ 透明代理(hookproxy)
- mfc 调用redis
- FTP客户端源码(c++)
- c++ 画图(14Qt-XPS)
- c++多边形交并差运算
评论
共有 条评论