DBscan算法C++实现

2015-01-27 05:55:46 · 作者: · 浏览: 4
#include
  
   
#define dimense 10
//10维数据
#define N 5005
#define MAX 0xffffff
#define clr(a) memset(a,0,sizeof(a))
using namespace std;
double radius=60;
int min_num=400;
int num=5000;//数据量
int k;
int now=0;//当前是第几个簇
int ans=0;//不是离群点的簇的数目

struct Point{
    int id;
    double dir[dimense];
    int belong;
    bool iskey;
    bool vis;
    int rec;//统计多少个点在其区域内
    vector
   
    area; }; Point center[15]; vector
    
     data; vector
     
      save[15]; double dis(Point a,Point b){ double ret=0; for(int ii=0;ii
      
       min_num){ data[cur].iskey=true; for(i=0;i
       
tot; int vis2[N]; void dfs(int a){ if(vis2[a])return; vis2[a]=1; save[now].push_back(a); for(int i=0;i min_num)tmp_rec[ans++]=i; } printf("一共%d个簇\n共:%d点\n",ans,cnt); for(i=0;i
复制去Google翻译翻译结果