a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 91|回复: 1

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

[复制链接]
发表于 2012-7-31 21:48:08 | 显示全部楼层 |阅读模式
 求最大值和最小值的分治算法  实践题目:& z9 x4 A6 A6 f! W# L* P+ Y: g( W
  给定一个顺序表,编写一个求出其最大值和最小值的分治算法。
$ y4 B( \' M  X  分析:4 J/ ]8 g; S' a0 g' I  y: ^- R* O
  由于顺序表的结构没有给出,作为演示分治法这里从简顺序表取一整形数组数组大小由用户定义,数据随机生成。我们知道如果数组大小为 1 则可以直接给出结果,如果大小为 2则一次比较即可得出结果,于是我们找到求解该问题的子问题即: 数组大小  *max)
1 H2 e+ I/ `/ [* @4 Q: [3 C0 E6 U  *max = meter;
( t% h2 W! Q- E" @- f3 l! w- i  if(meter[e] < *min)$ ]7 @7 V$ \& T% Z
  *min = meter[e];
# t( d! @& g* q1 _8 P  }
回复

使用道具 举报

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

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

 else{  if(meter[e] > *max)
' j/ r; k% b9 C7 f- q  *max = meter;; o1 d- L% ]$ S' j8 j* }
  if(meter < *min)" k) K: R2 k) l" L8 }" J5 L
  *min = meter;$ @, y( y% m. ?& f- ?
  }
7 f& F5 i6 w7 ?% ~& y* D; ]  return ;$ j( C$ {4 W1 X! u- \+ e  Q; W
  }# J7 q0 A3 N* B7 D& E5 O% l& N3 q
  i = s + (e-s)/2; /* 不是子问题继续分治,这里使用了二分,也可以是其它 */
/ |& K6 _- g, w3 J2 n3 j7 ?  PartionGet(s,i,meter,max,min);
# W& Q7 q8 w0 B' @8 z( o  PartionGet(i+1,e,meter,max,min);
5 n$ w7 `) k' C: G  }
7 e" A3 _3 h0 x7 ]( ^( l0 }  int main(){: p  i" f6 v, E# [
  int i,meter[M];
$ C8 N% d. \- \  int max = INT_MIN; /* 用最小值初始化 */5 B+ R, V6 u$ `: P) `' p- d! j- K) E
  int min = INT_MAX; /* 用最大值初始化 */
) q( |$ O1 ?5 X) {2 H) Y  printf("The array's element as followed:\n\n");
" |* s" o, s0 p0 @: t9 I# B  randomize(); /* 初始化随机数发生器 */" F) D% t, r% \1 x* W+ d
  for(i = 0; i < M; i ++){ /* 随机数据填充数组 */
+ ^' Z4 |5 u* X0 b  meter = rand()%10000;& P5 U  o: X! P5 x- v
  if(!((i+1)%10)) /* 输出表的随机数据 */9 c- B9 Q4 S/ v( o! e  g* b8 j
  printf("%-6d\n",meter);
: `* f; Z' \8 C1 x# X: R  else2 `0 B! c& \$ w' l' {
  printf("%-6d",meter);1 e3 p7 y, }; I' w6 @/ ?7 u
  }/ e2 u$ O5 W1 X- G
  PartionGet(0,M - 1,meter,&max,&min); /* 分治法获取最值 */* Q0 V' a3 p  {; h6 J
  printf("\nMax : %d\nMin : %d\n",max,min);) n. k6 L: o: X. B" c8 Q
  system("pause");
# G6 C+ ~2 Z' p  h7 w! K  return 0;- _: K8 l* p8 W0 I) q4 ?( Q
  }
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-17 11:46 , Processed in 0.999957 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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