亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cluster-sim.c

?? CURE算法實現 一種分層次的聚類算法 效果較好
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* * cluster.c -- cluster main program * * $Log: cluster.c,v $ * Revision 1.23  1993/02/03  07:43:07  stolcke * added code vector output for cluster * * Revision 1.22  1993/01/20  10:28:02  stolcke * faster O(n^2) clustering * * Revision 1.21  1993/01/16  01:44:34  stolcke * use triangular distance matrix (save 1/2 the memory) * * Revision 1.20  1993/01/16  00:27:07  stolcke * make dflag printing more efficient * * Revision 1.19  1993/01/16  00:03:30  stolcke * avoid unnecessary reallocation of patterns * skip non-root distance entries more efficiently * * Revision 1.18  1992/02/12  07:13:13  stolcke * -E option added * * Revision 1.17  91/07/15  12:56:00  stolcke * width option added  *  * Revision 1.16  91/07/14  01:10:54  stolcke * curses support added * graphing routines moved to separate file *  * Revision 1.15  91/07/10  21:26:54  stolcke * saber-cleaned and bad bug in allocation macro fixed *  * Revision 1.14  91/04/20  16:17:59  stolcke * second release (beta) *  * Revision 1.13  91/04/18  19:03:39  stolcke * some more error checks *  * Revision 1.12  91/04/18  18:28:21  stolcke * general cleanup and partial rewrite *  * Revision 1.11  91/04/18  13:29:29  stolcke * merged pca into cluster * * Revision 1.10  91/04/12  02:09:48  stolcke * name quoting added * * Revision 1.9  90/12/06  21:47:46  stolcke * fixed averaging with D/C values * * Revision 1.8  90/12/06  14:32:52  stolcke * support for don't care values added * fixed bug when total_distance = 0 * * Revision 1.7  90/11/12  20:31:22  stolcke * two initialization fixed * * Revision 1.6  90/11/12  18:43:26  stolcke * workaround to avoid old Sun compiler bug * * Revision 1.5  90/11/12  16:40:34  stolcke * added metric selection and scaling * * Revision 1.4  90/11/11  18:14:27  stolcke * -n flag no longer needed * * Revision 1.3  90/11/11  02:30:14  stolcke * no more seek needed, can use in pipe now * * Revision 1.2  90/11/10  23:44:02  stolcke * added new features (see manpage) * */#if !defined(lint) && !defined(SABER)static char rcsid[] = "$Header: /usr/src/local/conn/cluster/RCS/cluster.c,v 1.23 1993/02/03 07:43:07 stolcke Exp $";#endif				/* not lint */#include <stdio.h>#include <string.h>#include <math.h>#include "alloc.h"#include "error.h"#include "cluster.h"#define NONE (-2)#define BUFSIZE 256#ifndef SCALE#define SCALE "_SCALE_"#endif#ifndef DONTCARE#define DONTCARE "D/C"#endifstatic FLOAT   distance();static FLOAT   similarity();static FLOAT   CombSim();static FLOAT   root();static char buffer[BUFSIZE];	/* temporary string read buffer */#define PCA	"pca"/* different sim combining method */#define SINGLE 0#define COMPLETE 1#define UPGMA 2#define WPGMA 3#define UPGMC 4#define WPGMC 5#define WARD 6char   *program;		/* program name */int     vflag = 0;		/* print explanatory messages */static int pflag = 0;		/* do PCA instead of HCA */static int dflag = 0;		/* print distances */static int tflag = 0;		/* print tree in ASCII */static int Tflag = 0;		/* display tree using curses */static int gflag = 0;		/* print tree in graph(1) format */static int bflag = 0;		/* print tree in graph(1) format, with breaks */static int Bflag = 0;		/* print patterns as bit vectors */static int sflag = 0;		/* suppress scaling  */int	Eflag = 0;		/* print eigenvalues */static int width = 0;		/* width of ASCII tree representation */static int norm = 2;		/* which l-norm to use for distance metric */static int csize = 0; 		/* number of clusters */static usage(){    if (!pflag)	fprintf(stderr,	   "usage: %s [-dtTgbBsv] [-w width] [-n norm] [-k no-cluster] [vectorfile [namesfile]]\n", program);    else	fprintf(stderr,		"usage: %s [-Esv] [-e eigenbase] [-c pcs] [vectorfile [namesfile]]\n", PCA);    exit(2);}main(argc, argv)    int     argc;    char   *argv[];{    FILE   *fp, *pfile;    char   *efile = NULL;    char   *comps = NULL;    FLOAT **pattern = NULL;    int     lpat, npat;    char  **name = NULL;    int   i, *pinfo;    char  fname[80];    int     opt;    extern char *optarg;    extern int optind;    /* who are we ? */    if ((program = strrchr(argv[0], '/')) == NULL)	program = argv[0];    else	program += 1;    if (strcmp(program, PCA) == 0)	pflag = 1;    while ((opt = getopt(argc, argv, "pdtTgbBvsnk:e:c:w:E")) != -1)	switch (opt) {	case 'p':	    pflag = 1;	    break;	case 'd':	    if (pflag)		usage();	    dflag = 1;	    break;	case 't':	    if (pflag)		usage();	    tflag = 1;	    break;	case 'T':	    if (pflag)		usage();	    Tflag = 1;	    break;	case 'g':	    if (pflag)		usage();	    gflag = 1;	    break;	case 'b':	    if (pflag)		usage();	    bflag = 1;	    gflag = 1;	    break;	case 'B':	    if (pflag)		usage();	    Bflag = 1;	    break;	case 'v':	    vflag = 1;	    break;	case 'n':	    if (pflag)		usage();	    if (sscanf(optarg, "%d", &norm) != 1 || norm < 0)		usage();	    break;	case 'k':	    if (pflag)		usage();	    if (sscanf(optarg, "%d", &csize) != 1 || csize < 0)		usage();	    break;	case 'e':	    if (!pflag)		usage();	    efile = optarg;	    break;	case 'c':	    if (!pflag)		usage();	    comps = optarg;	    break;	case 's':	    sflag = 1;	    break;	case 'w':	    if (pflag)		usage();	    if (sscanf(optarg, "%d", &width) != 1 || width <= 0)		usage();	    break;	case 'E':	    if (!pflag)		usage();	    Eflag = 1;	    break;	case '?':	    usage();	    break;	}    if (!(pflag || dflag || tflag || Tflag || gflag || Bflag))	dflag = tflag = vflag = 1;	/* default behavior */    if (optind + 2 < argc)	usage();    if (!(optind < argc) || !strcmp(argv[optind], "-"))	fp = stdin;    else	IfErr(fp = fopen(argv[optind], "r")) {	    fprintf(stderr, "%s: cannot open file %s\n", argv[0], argv[optind]);	    exit(1);	}    IfErr(read_pattern(fp, &pattern, &lpat, &npat, &name)) {	fprintf(stderr, "%s: %s: cannot read pattern\n", program, ERR_MSG);	exit(1);    }    if (vflag)	fprintf(stderr, "read %d patterns:  size = %d\n", npat, lpat);    if (optind + 1 < argc) {	IfErr (name = new_array_of(npat, char *)) {;	    fprintf(stderr, "%s: not enough core for name array\n", program);	    exit(1);	}	if (!strcmp(argv[optind + 1], "-"))	    fp = stdin;	else	    IfErr(fp = fopen(argv[optind + 1], "r")) {		fprintf(stderr, "%s: cannot open file %s\n",			program, argv[optind + 1]);		exit(1);	    }	IfErr(read_names(fp, name, npat)) {	    fprintf(stderr, "%s: %s: cannot read names\n", program, ERR_MSG);	    exit(1);	}    }    IfErr(pinfo = new_array_of(npat, int)) {	    fprintf(stderr, "%s: not enough core\n", program);	    exit(1);    }    IfErr(pinfo = new_array_of(npat, int)) {	    fprintf(stderr, "%s: not enough core\n", program);	    exit(1);    }    sprintf(fname, "%s-partition", argv[optind]);    IfErr(pfile = fopen(fname, "w")) {	    fprintf(stderr, "%s: cannot open file %s\n", argv[0], argv[optind]);	    exit(1);    }    cluster(pattern, name, lpat, npat, pinfo);    for (i=0; i<npat; ++i)	fprintf(pfile, "%d\n", pinfo[i]);    free(pinfo);    fclose(pfile);    exit(0);}/* skip blanks and next end of line */skip_blanks(fp)    FILE   *fp;{    char    c;    while ((c = getc(fp)) == ' ' || c == '\t');    if (c != '\n')	ungetc(c, fp);    return c;}read_names(fp, name, npat)    FILE   *fp;    char  **name;    int     npat;{    register int i;    for (i = 0; i < npat; i++) {	char    c = skip_blanks(fp);	if (c == '\"') {	    getc(fp);	    fgets(buffer, sizeof(buffer), fp);	    buffer[strlen(buffer) - 1] = '\0';	}	else {	    IfEOF(fscanf(fp, "%s", buffer))		Erreturn("not enough names");	    skip_blanks(fp);	}	IfErr(name[i] = new_string(buffer))	    Erreturn("not enough core");    }    return MY_OK;}voidprint_names(tree, name)    BiTree *tree;    char  **name;{    if (tree->leaf != LEAF) {	if (name)	    printf(" %s", name[tree->leaf]);	else	    printf(" %d", tree->leaf);    }    else {	print_names(tree->r_tree, name);	print_names(tree->l_tree, name);    }}voidprint_k_cluster(tree, name, pinfo, cno)    BiTree *tree;    char  **name;    int   *pinfo;    int   cno;{    if (tree->leaf != LEAF) {	if (name)	    printf("%d : %s\n", tree->leaf, name[tree->leaf]);	else	    printf("%d : %d\n", tree->leaf, tree->leaf);	pinfo[tree->leaf] = cno;    }    else {	print_k_cluster(tree->r_tree, name, pinfo, cno);	print_k_cluster(tree->l_tree, name, pinfo, cno);    }}find_nnb(items, which, lpat, index, nsim)    BiTree *items;	/* node array */    int which;		/* index of node to find nearest neightbor for */    int lpat;		/* pattern length */    int *index;		/* returns: index of nnb (-1 if none) */    FLOAT *nsim;	/* returns: sim to nnb */{    int i;    FLOAT sim, max_sim;    int max_index;    if (items[which].root == FALSE) {	*index = NONE;	return;    }    max_index = NONE;    max_sim = 0.0;    /*     * find minimum distance neighbor -- to avoid duplication     * only pairs with 1st index < 2nd index are considered     */    for (i = 0; i < which; i++) {	if (items[i].root == FALSE)	    continue;		sim = items[which].slist[i];	if (max_index == NONE || sim > max_sim) {	    max_index = i;	    max_sim = sim;	}    }    if (max_index >= 0) {        *index = max_index;	*nsim = max_sim;    }    else {	*index = NONE;	*nsim = NONE;    }    return;}cluster(pattern, name, lpat, npat, pinfo)    FLOAT **pattern;    char  **name;    int     lpat, npat;    int   *pinfo;{    register int i, j, k, nodes = npat, cno;    BiTree *item = new_array_of(npat, BiTree);    /*     * for each data point or cluster center, we keep the index of the nearest     * neighbor, as well as the distance to it.     */    int *nnb_index = new_array_of(npat, int);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美女尤物国产一区| 国产成a人亚洲| 中文字幕av一区二区三区免费看 | 91精品免费观看| 成人综合婷婷国产精品久久蜜臀 | 久久亚洲一区二区三区四区| 色综合天天做天天爱| 韩国成人福利片在线播放| 亚洲九九爱视频| 国产日韩欧美精品综合| 91精品国产综合久久久久久久久久 | 综合久久久久久久| 久久久综合视频| 91精品国产日韩91久久久久久| 成人一区二区在线观看| 久久se这里有精品| 性欧美大战久久久久久久久| 日韩一区在线看| 2023国产精品自拍| 日韩亚洲欧美在线观看| 欧美色电影在线| 色综合天天做天天爱| 成人一级黄色片| 国产精品一区二区你懂的| 日本va欧美va瓶| 亚洲www啪成人一区二区麻豆| 亚洲天堂中文字幕| 国产精品欧美综合在线| 久久久青草青青国产亚洲免观| 欧美一区二区三区的| 欧美三级视频在线观看| 色94色欧美sute亚洲线路二 | 色久优优欧美色久优优| 不卡视频在线观看| 成人午夜电影久久影院| 国产一区二区三区精品视频| 美国欧美日韩国产在线播放| 日韩av电影天堂| 日本视频中文字幕一区二区三区 | 大胆欧美人体老妇| 国产风韵犹存在线视精品| 国产精品一卡二卡| 国产成人鲁色资源国产91色综 | 秋霞影院一区二区| 日韩在线a电影| 午夜av电影一区| 秋霞午夜av一区二区三区| 日韩av中文在线观看| 蜜臀va亚洲va欧美va天堂| 欧美高清激情brazzers| 欧美久久久久中文字幕| 91精品在线麻豆| 欧美成人a∨高清免费观看| 欧美r级电影在线观看| 久久新电视剧免费观看| 国产欧美日韩综合| 中文字幕中文字幕一区| 亚洲精品水蜜桃| 亚洲成人动漫一区| 久久69国产一区二区蜜臀| 国产一区二区三区精品欧美日韩一区二区三区 | 亚洲视频一区在线观看| 亚洲综合久久久| 麻豆精品精品国产自在97香蕉| 国产在线一区观看| 99久久精品情趣| 欧美日韩中文精品| 亚洲精品一线二线三线无人区| 中文字幕精品一区 | 激情av综合网| 91麻豆免费在线观看| 欧美日韩在线播放一区| 欧美不卡一二三| 国产精品久久久久婷婷| 亚洲国产精品一区二区www| 美女免费视频一区| jizzjizzjizz欧美| 制服视频三区第一页精品| 久久久午夜精品| 一区二区三区 在线观看视频| 日本vs亚洲vs韩国一区三区| 高清国产一区二区三区| 欧美视频在线一区| 久久久久久毛片| 亚洲午夜精品17c| 激情综合一区二区三区| 91丨porny丨中文| 日韩欧美国产一区在线观看| 国产精品久久久久久久久动漫| 亚洲va欧美va人人爽午夜| 国产精品一区二区在线观看网站| 在线观看亚洲专区| 国产日韩影视精品| 日本亚洲欧美天堂免费| 色综合久久中文字幕| 欧美tickling网站挠脚心| 亚洲天堂2016| 国产精品99久久久久久宅男| 欧美日韩午夜精品| 日韩一区欧美一区| 欧美一区二区成人6969| 国产精品免费视频观看| 激情深爱一区二区| 6080午夜不卡| 亚洲一区成人在线| 成人app下载| 久久久久久久综合| 免费三级欧美电影| 欧美性生交片4| 成人欧美一区二区三区小说| 国产在线精品免费| 日韩午夜三级在线| 亚洲va国产va欧美va观看| 91免费国产视频网站| 中文字幕乱码一区二区免费| 麻豆91在线看| 欧美一区二区大片| 日韩国产高清在线| 欧美日韩色综合| 亚洲黄色免费网站| av资源站一区| 国产精品久久一卡二卡| 国产激情一区二区三区四区 | 精品国产凹凸成av人网站| 午夜av一区二区三区| 欧美日韩在线播放一区| 一区二区三区精密机械公司| 色综合天天综合网国产成人综合天| 欧美激情综合在线| 风间由美中文字幕在线看视频国产欧美 | 精品成a人在线观看| 久久精品99国产精品| 欧美成人一区二区| 久久国产精品99久久久久久老狼 | 色综合色综合色综合| 国产精品乱人伦| 波多野洁衣一区| 亚洲日本在线视频观看| 91一区二区在线观看| 亚洲婷婷在线视频| 欧洲视频一区二区| 香蕉影视欧美成人| 4438x亚洲最大成人网| 蜜桃精品视频在线观看| 欧美成人性福生活免费看| 狂野欧美性猛交blacked| 精品成人在线观看| 国产不卡视频在线播放| 国产精品伦一区| 欧洲在线/亚洲| 日韩**一区毛片| 久久婷婷国产综合国色天香 | 欧美色综合网站| 日本亚洲天堂网| 精品国产99国产精品| 国产在线精品国自产拍免费| 亚洲国产成人私人影院tom| 91麻豆国产精品久久| 亚洲一区二区欧美| 91精品国产综合久久久久| 激情偷乱视频一区二区三区| 国产欧美日韩综合| 色综合久久综合网| 青青草97国产精品免费观看| 久久久亚洲精品石原莉奈| 99re这里只有精品视频首页| 亚洲一区在线视频| 欧美va在线播放| 成人av在线播放网址| 性做久久久久久免费观看| 久久亚洲免费视频| 色哟哟一区二区在线观看 | 粉嫩av一区二区三区在线播放 | 亚洲国产成人自拍| 欧美午夜精品理论片a级按摩| 青草av.久久免费一区| 国产精品视频麻豆| 欧美嫩在线观看| 国产成人啪免费观看软件| 亚洲一二三专区| 久久日韩精品一区二区五区| 99国产一区二区三精品乱码| 日本欧美韩国一区三区| 欧美极品aⅴ影院| 欧美丰满少妇xxxbbb| 成人视屏免费看| 日韩高清中文字幕一区| 亚洲国产精品成人综合色在线婷婷| 在线观看免费一区| 国产jizzjizz一区二区| 日韩高清在线观看| 亚洲人成亚洲人成在线观看图片 | 亚洲另类春色校园小说| 精品成人私密视频| 欧美三级电影网站| 91丝袜美腿高跟国产极品老师| 美女在线观看视频一区二区| 亚洲精选在线视频| 日本一二三不卡| 精品久久久久香蕉网|