分治求最大最小

原创 2015年07月10日 09:47:09
var x:array[1..1000]of integer;
    i,n,maxx,minn:integer;


procedure pd(r1, r2:integer;
var maxx,minn:integer);
  var max1,min1,max2,min2,d:integer;
begin
  if(r1=r2) then
   begin
    maxx:=x[r1];
    minn:=x[r1];
   end
    else if(r2=r1+1) then
    begin
     if(x[r2]>x[r1]) then
      begin
       maxx:=x[r2];minn:=x[r1];
      end
        else
        begin
         maxx:=x[r1];minn:=x[r2];
        end
   end
    else
     begin
      d:=(r1+r2) div 2;
      pd(r1,d,max1,min1);
      pd(d+1,r2,max2,min2);
      if (max1>max2) then maxx:=max1
      else maxx:=max2;
      if (min1<min2) then minn:=min1
      else minn:=min2;
     end;
end;
begin
 //assign(input,'input.txt');
 //reset(input);
 read(n);
 for i:=1 to n do read(x[i]);
 //assign(output,'output.txt');
 //rewrite(output);
 i:=1;
 //while not eof do
 //begin
  //read(x[i]);
  //inc(i);
 //end;
 pd(1,n,maxx,minn);
 writeln(maxx,' ',minn);
 //close(input);
 //close(output);
end.
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

求最大最小元 C++实现 分治法

采用分治法在一个元素集合中寻找最大元素和最小元素。 程序实现: #include #include #include using namespace std; const int N=1000; ...

基于分治法的求最大最小问题

问题描述,在一个数组中的所有数据均成无序paixu

求最大最小等例

算法笔记04--分治法之寻找最大最小元素

顾名思义,“分治”名字本身就已经给出了一种强有力的算法设计技术,它可以用来解决各类问题。在它最简单的形式里,一个分治算法把问题实例划分成若干子实例(多数情况是分成两个),并分别递归地解决每个子实例,然...

算法设计与分析:第三章 分治 3.1最大最小问题

/* 最大最小问题: 企业老板有一袋金块,要从中挑选最重的一块给他的 优秀员工,挑选最轻的一块给他的一位一般员工。 自己分析: 将数组一分为二,在每个数组中分别寻找最大和最小值。 当数组中只剩一个元...

求最大、最小、平均值

  • 2012-10-13 15:09
  • 486B
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)