a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 92|回复: 1

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

[复制链接]
发表于 2012-7-31 21:48:08 | 显示全部楼层 |阅读模式
 求最大值和最小值的分治算法  实践题目:- B! J0 t/ K  q# u" M
  给定一个顺序表,编写一个求出其最大值和最小值的分治算法。
2 q$ G5 z! M3 I; ]7 V0 a  分析:% Q0 Q1 P) d3 t) `7 t! ~, ]
  由于顺序表的结构没有给出,作为演示分治法这里从简顺序表取一整形数组数组大小由用户定义,数据随机生成。我们知道如果数组大小为 1 则可以直接给出结果,如果大小为 2则一次比较即可得出结果,于是我们找到求解该问题的子问题即: 数组大小  *max)
: i$ h) H+ Y" T2 C2 Q/ ~2 f9 w, B  k  *max = meter;
' q% h- L8 y: b  if(meter[e] < *min)
. r' G8 c7 s. ^) I- d  *min = meter[e];  d; r8 Q. u- x& c
  }
回复

使用道具 举报

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

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

 else{  if(meter[e] > *max); q) T$ Q5 V  G# J# ?' {: @. d* j
  *max = meter;
% t" C4 k5 i5 L, J2 o& `  if(meter < *min)
$ Z. b) Z+ X& S' A  *min = meter;; z9 ~. T' t% S  Z2 y
  }* R* `$ D4 A6 K. b
  return ;
: V  n% ^. g; U! D  L; j, g  }: ^' W" n; B, E
  i = s + (e-s)/2; /* 不是子问题继续分治,这里使用了二分,也可以是其它 */9 @/ ]( i! o1 h) a
  PartionGet(s,i,meter,max,min);# q+ r6 U$ N. t- d5 V, A
  PartionGet(i+1,e,meter,max,min);
9 n: N8 o# `0 [  }
" f! [' Q6 R8 b4 F* o  int main(){  ~) ~% P$ _9 s% A0 u6 @( i+ L
  int i,meter[M];0 ?7 N+ V5 x% Q3 s+ _
  int max = INT_MIN; /* 用最小值初始化 */
" x& ?' s0 J" U: O8 Y7 T  int min = INT_MAX; /* 用最大值初始化 */
" e+ g- i0 A$ h" Z' U  printf("The array's element as followed:\n\n");) W9 f) e2 T- v+ K& H7 K9 l
  randomize(); /* 初始化随机数发生器 */
" |4 h) r, T  q4 j8 U0 E  for(i = 0; i < M; i ++){ /* 随机数据填充数组 */
" z7 T1 p, Y5 V  X/ d  meter = rand()%10000;
, e1 A+ Z' n$ G; t: d" z3 v; ~  if(!((i+1)%10)) /* 输出表的随机数据 */3 c4 n+ @* a6 O9 o
  printf("%-6d\n",meter);5 v7 S% q# r. \# H1 P; z  y, h
  else$ e7 _. S8 e6 [% Q; D+ n- {
  printf("%-6d",meter);* a% }4 o' j1 J1 U/ n
  }
( ~4 S/ o# s3 {1 _3 U! @0 [. C' m  PartionGet(0,M - 1,meter,&max,&min); /* 分治法获取最值 */3 d7 B; C* i. i6 m4 O3 ~
  printf("\nMax : %d\nMin : %d\n",max,min);5 z- H! w7 ~# G' Z- x2 i/ K3 A3 j
  system("pause");' |  V+ i/ O* K
  return 0;% f8 \$ C+ F9 z1 [* D1 T2 M
  }
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-13 20:59 , Processed in 0.214226 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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