资源简介
层次聚类算法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个文件信息
相关资源
- 空间后方交会C++
- BOOTH算法C++实现
- VS2010 C++窗口应用程序窗口之间传递参
- C++项目-图书管理系统
- 马石安编写的VC++程序设计与应用程序
- mfc获取mac地址的小程序
- 基于定步长四阶龙格库塔法的C++弹道
- 电梯仿真.zip
- 循环赛日程表,分治法n=2K,n为任意数
- GPS单点定位完整代码txt版C++,还有r
- 迷宫的生成与自动寻路
- libstdc++.so.6.0.22
- 基于原始套接字实现的PING功能代码
- 流式套接字定长变长接收回射实验报
- C++简易聊天程序C++简易聊天程序
- AES 加解密c++
- 自己用C++实现的RC4算法
- C++实现的BP神经网络算法实现奇偶检验
- Linux环境下的文件安全传输(C/C++)
- SHA-1算法实现源代码
- 本例程采用VC++ 实现JPG格式图片的打开
- c++高仿QQ截图
- 银行家算法模拟实现C++版
- 道格拉斯压缩算法C++实现
- Visual C++开发GIS系统第2版书中代码
- 航空订票管理系统 机场订票管理系统
- moravec算子c++代码
- FCFS和SJF调度算法C++
- FTP服务器C++代码实现
- C++ jpeg图像编码与解码
评论
共有 条评论