Chinaunix首页 | 论坛 | 博客
  • 博客访问: 130055
  • 博文数量: 30
  • 博客积分: 972
  • 博客等级: 中士
  • 技术积分: 332
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-08 10:04
文章分类

全部博文(30)

文章存档

2012年(30)

分类: C/C++

2012-07-05 20:29:17


 

点击(此处)折叠或打开

  1. 1-1.快速查找(通过标记有联系对象,在数组中的值相同)
  2. /*********快速查找********/
  3. #include<stdio.h>
  4. #define N 1000
  5. main()
  6. {
  7.  int i,p,q,t,id[N];
  8.  for(i=0;i<N;i++)
  9.  id[i]=i;

  10.  while(scanf(%d %d\n",&p,&q) == 2)
  11.  {
  12.  if(id[p] == id[q])
  13.   continue;
  14.  for(t=id[p],i=0;i
  15.   if(id[i] == t)
  16.    id[i]=id[q];
  17.  printf("%d %d\n",p,q);
  18.  }
  19. }

  20. 1-2.快速并集算法(通过修改数组值,从而构建一颗一般的树来记录:各对象的连通性)
  21. /*********快速并集********/
  22. #define N 1000
  23. main()
  24. {
  25.  int i,p,q,id[N];
  26.  for(i=0;i
  27.  id[i]=i;

  28.  while(scanf(%d %d\n",&p,&q) == 2)
  29.  {
  30.  for(i=p;i!=id[i];i=id[i]);
  31.  for(j=q;j!=id[j];j=id[j]);
  32.  if(i==j)
  33.   continue;
  34.  id[i]=j;
  35.  printf("%d %d\n",p,q);
  36.  }
  37. }

  38. 1-3.快速并集加权算法(在快速并集加权算法上对生成树进行压平处理,以减少搜索路径)
  39. /*********快速并集加权********/
  40. #define N 1000
  41. main()
  42. {
  43.  int i,p,q,id[N],sz[N];
  44.  for(i=0;i<N;i++)
  45.  {
  46.  id[i]=i;
  47.  sz[i]=1;
  48.  }
  49.  while(scanf(%d %d\n",&p,&q) == 2)
  50.  {
  51.  for(i=p;i!=id[i];i=id[i]);
  52.  for(j=q;j!=id[j];j=id[j]);
  53.  if(i==j)
  54.   continue;
  55.  if(sz[i] < sz[j])
  56.   {
  57.    id[i]=j;
  58.    sz[j]+=sz[i];
  59.   }
  60.  else
  61.   {
  62.    id[j]=i;
  63.    sz[i]+=sz[j];
  64.   }
  65.  printf("%d %d\n",p,q);
  66.  }
  67. }

  68. 1-4.快速并集加权对分路径压缩算法。
  69. /*********快速并集加权对分路径压缩********/
  70. #define N 1000
  71. main()
  72. {
  73.  int i,p,q,id[N],sz[N];
  74.  for(i=0;i
  75.  {
  76.  id[i]=i;
  77.  sz[i]=1;
  78.  }
  79.  while(scanf(%d %d\n",&p,&q) == 2)
  80.  {
  81.  for(i=p;i!=id[i];i=id[i])
  82.   id[i]=id[id[i]];
  83.  for(j=q;j!=id[j];j=id[j])
  84.   id[j]=id[id[j]];
  85.  printf("%d %d\n",p,q);
  86.  }
  87. }


 

阅读(1927) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~