a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 138|回复: 3

[C语言] 2011年计算机等级考试二级C辅导实例编程(1)

[复制链接]
发表于 2012-7-31 21:48:08 | 显示全部楼层 |阅读模式
 最小生成树之Prim算法  Prim算法用于求无向图的最小生成树
" O: d3 `/ A/ s/ [' \$ {3 F/ p  设图G =(V,E),其生成树的顶点集合为U。
3 }  N+ I! ~; `  ①、把v0放入U。
$ \- u2 d7 g2 \4 q! f0 q  ②、在所有u∈U,v∈V-U的边(u,v)∈E中找一条最小权值的边,加入生成树。
; i8 V% h* r" o2 a; Q& a/ F  ③、把②找到的边的v加入U集合。如果U集合已有n个元素,则结束,否则继续执行②。
; }: [& O- j" m. t% h4 _! v  其算法的时间复杂度为O(n^2)
$ F+ ?- o5 l4 x5 O7 V: q  Prim算法实现:
/ }- \- ]1 e! v0 j9 l  (1)集合:设置一个数组set(i=0,1,..,n-1),初始值为 0,代表对应顶点不在集合中(注意:顶点号与下标号差1)
4 V( i' T: C  Z/ Z- C- M" A1 E  (2)图用邻接阵表示,路径不通用无穷大表示,在计算机中可用一个大整数代替。0 s+ C5 x- V7 |
  采用堆可以将复杂度降为O(m log n),如果采用Fibonaci堆可以将复杂度降为O(n log n + m)' ?! l8 \: b3 J) i- N1 v+ |
  算法实现
7 ~! a, _4 y3 b  w5 V4 d" D/ t  #include9 \' V* T1 `4 t0 B' h9 d& {0 X
  #define MaxNum 765432100;
  j* v# N4 @, A  using namespace std;% Q- l3 P, `/ h& Q6 c% v
  ifstream fin("Prim.in");& V) N# Q  h( h+ T. Y
  ofstream fout("Prim.out");
2 z/ C. [1 M4 X' }) L5 h  int p,q;
5 K2 F9 m; U/ X; c5 }  bool is_arrived[501];
8 _! B/ _" H4 a4 P( J4 B7 r- P) P  int Length,Vertex,SetNum,State;
; g( v' E3 ~+ t  int Map[501][501],Dist[501];4 a8 v& x8 [$ x: g- f! i
  int FindMin()
7 b! p! d  V% D  {' A8 m+ `6 h1 o2 H2 Q" E
  int p;
; n4 c- ^3 ?. w; t  int Minm,Temp;
' s# C" g3 U# M: ?  N  q  Minm=MaxNum;
3 F0 T' I7 W) L4 W, v  Temp=0;
回复

使用道具 举报

 楼主| 发表于 2012-7-31 21:48:09 | 显示全部楼层

2011年计算机等级考试二级C辅导实例编程(1)

for(p=1;p Vertex;</p>  for(p=1;p Map[p][q];  u7 c) {% ~9 c& D
  if (Map[p][q]==0) Map[p][q]=MaxNum
% G* |) d3 U/ L. R  }$ W& w  z# C' X  @  m
  Length=0;0 M/ E/ f; L; ^/ e4 ?
  is_arrived[1]=true;
: n# p/ t) E( K  I3 S5 Q
+ n2 @* m+ O& N* V$ n! J  for(p=1;p
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-7-31 21:48:10 | 显示全部楼层

2011年计算机等级考试二级C辅导实例编程(1)

 fout
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-7-31 21:48:11 | 显示全部楼层

2011年计算机等级考试二级C辅导实例编程(1)

 k=j;  }
8 d6 V# ^  Z  K  }
* B& K+ a6 u/ U  sum+=lowcost[k];8 Y: U# }+ b- m0 S
  //printf("sum=%d\n",sum);% N% w- ?3 n& x4 _/ y( M" z
  //printf("k=%d\n",k);
5 G) K+ F$ }, T1 L+ F% y7 j  lowcost[k]=-1;3 D. _( i( ]4 G

' {3 V! F! i' h4 E. R  M4 S9 v5 j  for( j=1; j
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-18 07:41 , Processed in 0.213575 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表