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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? vecops.c

?? apriori算法是數(shù)據(jù)挖掘的經(jīng)典算法之1,其基于關(guān)聯(lián)規(guī)則的思想.這是我的第2個(gè)收藏算法
?? C
字號(hào):
/*----------------------------------------------------------------------  File    : vecops.c  Contents: some special vector operations  Author  : Christian Borgelt  History : 16.09.1996 file created            04.02.1999 long int changed to int            03.06.2001 function v_shuffle added            02.01.2002 functions v_intsort, v_fltsort, v_dblsort added            03.03.2002 functions v_reverse, v_intrev etc. added----------------------------------------------------------------------*/#include <assert.h>#include "vecops.h"/*----------------------------------------------------------------------  Preprocessor Definitions----------------------------------------------------------------------*/#define TH_INSERT      16       /* threshold for insertion sort */#define BUFSIZE      4096       /* size of buffers for shifting *//*----------------------------------------------------------------------  Functions----------------------------------------------------------------------*/static void _rec (void **vec, int n, VCMPFN cmpfn, void *data){                               /* --- recursive part of sort */  void **l, **r;                /* pointers to exchange positions */  void *x,  *t;                 /* pivot element and exchange buffer */  int  m;                       /* number of elements in 2nd section */  do {                          /* sections sort loop */    l = vec; r = l +n -1;       /* start at left and right boundary */    if (cmpfn(*l, *r, data) > 0) {  /* bring the first and last */      t = *l; *l = *r; *r = t; }    /* element into proper order */    x = vec[n >> 1];            /* get the middle element as pivot */    if      (cmpfn(x, *l, data) < 0) x = *l;  /* try to find a */    else if (cmpfn(x, *r, data) > 0) x = *r;  /* better pivot */    while (1) {                 /* split and exchange loop */      while (cmpfn(*++l, x, data) < 0)    /* skip left  elements that */        ;                       /* are smaller than the pivot element */      while (cmpfn(*--r, x, data) > 0)    /* skip right elements that */        ;                       /* are greater than the pivot element */      if (l >= r) {             /* if less than two elements left, */        if (l <= r) { l++; r--; } break; }       /* abort the loop */      t = *l; *l = *r; *r = t;  /* otherwise exchange elements */    }    m = (int)(vec +n -l);       /* compute the number of elements */    n = (int)(r -vec +1);       /* right and left of the split */    if (n > m) {                /* if right section is smaller, */      if (m >= TH_INSERT)       /* but larger than the threshold, */        _rec(l, m, cmpfn, data); } /* sort it by a recursive call, */    else {                      /* if the left section is smaller, */      if (n >= TH_INSERT)       /* but larger than the threshold, */        _rec(vec, n, cmpfn, data); /* sort it by a recursive call, */      vec = l; n = m;           /* then switch to the right section */    }                           /* keeping its size m in variable n */  } while (n >= TH_INSERT);     /* while greater than threshold */}  /* _rec() *//*--------------------------------------------------------------------*/void v_sort (void *vec, int n, VCMPFN cmpfn, void *data){                               /* --- quick sort for pointer vectors */  int  k;                       /* size of first section */  void **l, **r;                /* to traverse the vector */  void *t;                      /* exchange buffer */  assert(vec && (n >= 0) && cmpfn);   /* check the function arguments */  if (n <= 1) return;           /* do not sort less than two elements */  if (n < TH_INSERT)            /* if fewer elements than threshold */    k = n;                      /* for insertion sort, note the */  else {                        /* number of elements, otherwise */    _rec(vec, n, cmpfn, data);  /* call the recursive function */    k = TH_INSERT -1;           /* and get the number of elements */  }                             /* in the first vector section */  for (l = r = vec; --k > 0; )  /* find the smallest element within */    if (cmpfn(*++r, *l, data) < 0) l = r;   /* the first k elements */  r = vec;                      /* swap the smallest element */  t = *l; *l = *r; *r = t;      /* to front as a sentinel */  while (--n > 0) {             /* insertion sort loop */    t = *++r;                   /* note the element to insert */    for (l = r; cmpfn(*--l, t, data) > 0; ) /* shift right elements */      l[1] = *l;                /* that are greater than the one to */    l[1] = t;                   /* insert and store the element to */  }                             /* insert in the place thus found */}  /* v_sort() *//*--------------------------------------------------------------------*/void v_move (void *vec, int off, int n, int pos, int esz){                               /* --- move a vector section */  int i;                        /* loop variable */  int mid, end;                 /* middle and end index */  int *src, *dst;               /* to traverse vector */  int buf[BUFSIZE];             /* buffer for vector elements */  assert(vec                    /* check the function arguments */     && (off >= 0) && (n >= 0) && (pos >= 0) && (esz >= 0));  esz /= (int)sizeof(int);      /* adapt size, offsets, and counter */  pos *= esz; off *= esz; n *= esz;  end  = off +n;                /* normalize vector indices */  if (pos <= off) { mid = off; off = pos; }  else            { mid = end; end = pos; }  if (mid -off < end -mid) {    /* if first section is smaller */    while (mid > off) {         /* while there are elements to shift */      n   = (mid -off < BUFSIZE) ? mid -off : BUFSIZE;      src = (int*)vec +mid -n;  /* get number of elements and */      dst = buf;                /* copy source to the buffer */      for (i = n;        --i >= 0; ) *dst++ = *src++;      dst = (int*)vec +mid -n;  /* shift down/left second section */      for (i = end -mid; --i >= 0; ) *dst++ = *src++;      src = buf;                /* copy buffer to destination */      for (i = n;        --i >= 0; ) *dst++ = *src++;      mid -= n; end -= n;       /* second section has been shifted */    } }                         /* down/left cnt elements */  else {                        /* if second section is smaller */    while (end > mid) {         /* while there are elements to shift */      n   = (end -mid < BUFSIZE) ? end -mid : BUFSIZE;      src = (int*)vec +mid +n;  /* get number of elements and */      dst = buf +n;             /* copy source to the buffer */      for (i = n;        --i >= 0; ) *--dst = *--src;      dst = (int*)vec +mid +n;  /* shift up/right first section */      for (i = mid -off; --i >= 0; ) *--dst = *--src;      src = buf +n;             /* copy buffer to destination */      for (i = n;        --i >= 0; ) *--dst = *--src;      mid += n; off += n;       /* first section has been shifted */    }                           /* up/right cnt elements */  }}  /* v_move() *//*--------------------------------------------------------------------*/void v_shuffle (void *vec, int n, double randfn (void)){                               /* --- shuffle vector entries */  int  i;                       /* vector index */  void **v = vec, *t;           /* vector and exchange buffer */  while (--n > 0) {             /* shuffle loop (n random selections) */    i = (int)((n+1) *randfn()); /* compute a random index */    if (i > n) i = n;           /* in the remaining section and */    if (i < 0) i = 0;           /* exchange the vector elements */    t = v[i]; v[i] = v[n]; v[n] = t;  }}  /* v_shuffle() *//*--------------------------------------------------------------------*/void v_reverse (void *vec, int n){                               /* --- reverse a pointer vector */  void **v, *t;                 /* vector and exchange buffer */  for (v = vec; --n > 0; ) {    /* reverse the order of the elements */    t = v[n]; v[n] = v[0]; *v++ = t; }}  /* v_reverse() *//*--------------------------------------------------------------------*/#define REC(type,rec) \static void rec (type *vec, int n) \{                               /* --- recursive part of sort */       \  type *l, *r;                  /* pointers to exchange positions */   \  type x, t;                    /* pivot element and exchange buffer */\  int  m;                       /* number of elements in sections */   \                                                                       \  do {                          /* sections sort loop */               \    l = vec; r = l +n -1;       /* start at left and right boundary */ \    if (*l > *r) { t = *l; *l = *r; *r = t; }                          \    x = vec[n >> 1];            /* get the middle element as pivot */  \    if      (x < *l) x = *l;    /* compute median of three */          \    else if (x > *r) x = *r;    /* to find a better pivot */           \    while (1) {                 /* split and exchange loop */          \      while (*++l < x)          /* skip left  elements that are */     \        ;                       /* smaller than the pivot element */   \      while (*--r > x)          /* skip right elements that are */     \        ;                       /* greater than the pivot element */   \      if (l >= r) {             /* if less than two elements left, */  \        if (l <= r) { l++; r--; } break; }       /* abort the loop */  \      t = *l; *l = *r; *r = t;  /* otherwise exchange elements */      \    }                                                                  \    m = (int)(vec +n -l);       /* compute the number of elements */   \    n = (int)(r -vec +1);       /* right and left of the split */      \    if (n > m) {                /* if right section is smaller, */     \      if (m >= TH_INSERT)       /* but larger than the threshold, */   \        rec(l, m); }            /* sort it by an recursive call */     \    else {                      /* if the left section is smaller, */  \      if (n >= TH_INSERT)       /* but larger than the threshold, */   \        rec(vec, n);            /* sort it by an recursive call, */    \      vec = l; n = m;           /* then switch to the right section */ \    }                           /* keeping its size m in variable n */ \  } while (n >= TH_INSERT);     /* while greater than threshold */     \}  /* rec() *//*--------------------------------------------------------------------*/#define SORT(type,rec,sort) \void sort (type *vec, int n) \{                               /* --- sort a number vector */         \  int  k;                       /* size of first section */            \  type *l, *r;                  /* to traverse the vector */           \  type t;                       /* exchange buffer */                  \                                                                       \  assert(vec && (n >= 0));      /* check the function arguments */     \  if (n <= 1) return;           /* do not sort less than two elems. */ \  if (n < TH_INSERT)            /* if less elements than threshold */  \    k = n;                      /* for insertion sort, note the */     \  else {                        /* number of elements, otherwise */    \    rec(vec, n);                /* call the recursive sort function */ \    k = TH_INSERT -1;           /* and get the number of elements */   \  }                             /* in the first vector section */      \  for (l = r = vec; --k > 0; )  /* find position of smallest element */\    if (*++r < *l) l = r;       /* within the first k elements */      \  r = vec;                      /* swap the smallest element */        \  t = *l; *l = *r; *r = t;      /* to front as a sentinel */           \  while (--n > 0) {             /* standard insertion sort */          \    t = *++r;                   /* note the number to insert */        \    for (l = r; *--l > t; k--)  /* shift right all numbers that are */ \      l[1] = *l;                /* greater than the one to insert */   \    l[1] = t;                   /* and store the number to insert */   \  }                             /* in the place thus found */          \}  /* sort() *//*--------------------------------------------------------------------*/REC (int,    _intrec)SORT(int,    _intrec, v_intsort)/*--------------------------------------------------------------------*/REC (float,  _fltrec)SORT(float,  _fltrec, v_fltsort)/*--------------------------------------------------------------------*/REC (double, _dblrec)SORT(double, _dblrec, v_dblsort)/*--------------------------------------------------------------------*/#define REVERSE(type,reverse) \void reverse (type *vec, int n) \{                               /* --- reverse a number vector */      \  type t;                       /* exchange buffer */                  \  while (--n > 0) {             /* reverse the order of the elems. */  \    t = vec[n]; vec[n] = vec[0]; *vec++ = t; }                         \}  /* reverse() *//*--------------------------------------------------------------------*/REVERSE(int,    v_intrev)REVERSE(float,  v_fltrev)REVERSE(double, v_dblrev)

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区影院| 美女视频一区二区三区| 日韩视频免费直播| 成人免费黄色大片| 免费成人在线观看| 一区二区在线免费| 欧美激情在线免费观看| 欧美一级久久久久久久大片| 91免费国产在线| 国产乱码精品一品二品| 日韩经典中文字幕一区| 亚洲少妇30p| 国产色产综合产在线视频| 制服丝袜一区二区三区| 一本高清dvd不卡在线观看| 国产精品综合久久| 日本vs亚洲vs韩国一区三区| 一个色综合av| 亚洲视频中文字幕| 中文字幕一区二区三区乱码在线 | 色婷婷久久综合| 国产精品综合一区二区三区| 免费观看在线色综合| 一区二区三区欧美久久| 一区视频在线播放| 欧美国产亚洲另类动漫| 久久久久一区二区三区四区| 精品免费视频一区二区| 91精品国产91久久久久久最新毛片| 色婷婷精品大在线视频| 99久久99久久免费精品蜜臀| 成人av在线网| 成人黄色片在线观看| 国产99久久久久| 成人一区二区三区在线观看| 国产成人综合网站| 国产成人在线视频播放| 国产精品一级二级三级| 国产乱码精品一区二区三区五月婷| 麻豆精品一区二区三区| 日本v片在线高清不卡在线观看| 亚洲不卡在线观看| 日韩精品欧美成人高清一区二区| 亚洲成av人影院| 日韩中文字幕av电影| 日韩一区精品字幕| 蓝色福利精品导航| 国产一区亚洲一区| 国产成人精品三级| eeuss国产一区二区三区| 色综合久久综合| 欧美猛男男办公室激情| 欧美一卡二卡在线| 精品国产91久久久久久久妲己| 日韩三级免费观看| 久久色在线观看| 国产精品久久毛片av大全日韩| 亚洲欧洲无码一区二区三区| 亚洲蜜臀av乱码久久精品| 亚洲制服丝袜一区| 免费在线一区观看| 成人精品亚洲人成在线| 在线免费不卡视频| 欧美一区二区三区四区五区 | 91影院在线免费观看| 在线免费观看一区| 欧美成人精品高清在线播放| 日本一区二区三区在线观看| 亚洲区小说区图片区qvod| 五月婷婷色综合| 国产麻豆成人传媒免费观看| 99九九99九九九视频精品| 欧美日韩在线三级| 亚洲精品一区二区三区蜜桃下载| 国产精品美日韩| 午夜电影网亚洲视频| 蜜臀av国产精品久久久久| 福利91精品一区二区三区| 欧美午夜精品久久久久久超碰| 日韩午夜激情视频| 中文字幕一区二区三区精华液 | 粉嫩aⅴ一区二区三区四区| 欧美性三三影院| 久久综合色婷婷| 亚洲一区视频在线| 国产成人aaa| 91.com在线观看| 国产精品色婷婷久久58| 亚洲成av人片在线观看无码| 国产成人午夜精品影院观看视频| 欧美午夜一区二区三区免费大片| 久久这里只精品最新地址| 亚洲六月丁香色婷婷综合久久 | 韩国精品主播一区二区在线观看| 99久久精品免费精品国产| 337p亚洲精品色噜噜| 1024成人网| 久久国产精品第一页| 在线精品国精品国产尤物884a| 亚洲精品一区二区三区99| 亚洲综合在线视频| 粉嫩绯色av一区二区在线观看| 欧美一区二区不卡视频| 一区二区三区 在线观看视频| 国产毛片一区二区| 日韩视频在线观看一区二区| 伊人色综合久久天天| 成人伦理片在线| 久久亚洲一级片| 蜜臀91精品一区二区三区| 欧美性xxxxxxxx| ...xxx性欧美| 国产69精品久久99不卡| 久久综合久久99| 久久成人久久爱| 欧美久久久一区| 亚洲成av人片一区二区梦乃| 色哟哟国产精品| 亚洲三级在线看| 成人av资源下载| 国产精品美女视频| 成人午夜视频免费看| 久久久精品国产免费观看同学| 麻豆高清免费国产一区| 欧美精品日韩一本| 亚洲福中文字幕伊人影院| 日本乱码高清不卡字幕| 亚洲欧美在线视频观看| 成人精品视频一区二区三区尤物| 久久亚洲精精品中文字幕早川悠里| 美女mm1313爽爽久久久蜜臀| 日韩视频免费观看高清完整版在线观看 | 蜜桃精品视频在线| 日韩欧美一级精品久久| 久久精品久久久精品美女| 91精品国产综合久久福利| 午夜精品久久久久久| 欧美日韩国产系列| 午夜国产精品一区| 51精品国自产在线| 久久国内精品自在自线400部| 91精品国产免费| 麻豆精品视频在线| 久久久国产一区二区三区四区小说 | 欧美日韩国产小视频| 天天综合日日夜夜精品| 91精品国产色综合久久不卡蜜臀| 日韩精品一级中文字幕精品视频免费观看| 欧美一a一片一级一片| 爽好多水快深点欧美视频| 欧美一区二区国产| 国产精品香蕉一区二区三区| 国产精品伦理在线| 91久久一区二区| 日本一区中文字幕| 久久久国产午夜精品| 97久久精品人人做人人爽| 亚洲最新在线观看| 欧美一区二区三区色| 国产揄拍国内精品对白| 国产精品福利一区| 欧美三级电影在线看| 卡一卡二国产精品| 国产精品私人自拍| 高清视频一区二区| 欧美xxxxxxxx| 在线观看亚洲成人| ●精品国产综合乱码久久久久| 精品一二三四区| 17c精品麻豆一区二区免费| 欧美亚洲一区二区三区四区| 美女一区二区在线观看| 中文字幕不卡一区| 欧美日韩美少妇| 国产成人无遮挡在线视频| 亚洲乱码日产精品bd| 日韩一区二区三区观看| 国产.欧美.日韩| 无码av免费一区二区三区试看 | 日韩中文字幕亚洲一区二区va在线 | 国产精品美女一区二区三区 | 欧美tk—视频vk| 色综合久久久久综合99| 日本麻豆一区二区三区视频| 中文字幕免费观看一区| 欧美久久久久久蜜桃| 成人激情午夜影院| 强制捆绑调教一区二区| 亚洲情趣在线观看| 久久夜色精品国产噜噜av| 精品视频999| 成人免费毛片a| 久久99热这里只有精品| 亚洲一区二区欧美日韩| 国产婷婷一区二区| 日韩三级视频在线看| 欧美色手机在线观看| jlzzjlzz欧美大全| 国产毛片精品一区| 蜜桃视频第一区免费观看|