📄 nn.cpp
字号:
// nn.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include<vector>
#include "data.h"
#include "iostream.h"
using namespace std;
#define n 10
int main()
{
int a[n]={0,1,11,4,5,2,3,10,8,9};
int m[n][n]; //定义邻接矩阵
int i,j,z;
cout<<"The data for experiment is:";
for(i=0;i!=n;++i)
{
cout<<a[i]<<"\t";
}
cout<<endl;
for (i=0;i!=n;++i)
{
for (j=0;j!=n;++j)
{
m[i][j]=(a[i]-a[j])>0?(a[i]-a[j]):(a[j]-a[i]);
}
}
int l=0;
int d=2; //设置阈值为2
int k=0; //记录类的个数
vector<data> b[n];
data dat[n];
for( i=0;i!=n;++i)
{
dat[i].setdata(a[i]);
}
dat[0].setcluster(0);
b[0].push_back(dat[0]);
for(j=1;j!=n;++j)
{ int min=m[0][j];
for(i=0;i!=n;i++)
{
if(b[i].size()!=0)
{
for(z=0;z!=b[i].size();++z)
{
int temp=b[i].at(z).getdata();
int result=(a[j]-temp)>0?(a[j]-temp):(temp-a[j]);
if (result<min)
{
min=result;
l=b[i].at(z).getcluster();
}
}
}
}
if(min>d)
{
++k;
dat[j].setcluster(k);
b[k].push_back(dat[j]);
}
else
{
dat[j].setcluster(l);
b[l].push_back(dat[j]);
}
}
for(i=0;i!=n;++i)
{
if(b[i].size()!=0)
{cout<<"cluster"<<i<<":";}
for(j=0;j!=b[i].size();++j)
{
cout <<b[i].at(j).getdata()<<"\t";
}
if (j=b[i].size()) cout<<endl;
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -