分治求最大最小

原创 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.
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

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

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

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

采用分治法在一个元素集合中寻找最大元素和最小元素。 程序实现: #include #include #include using namespace std; const int N=1000; ...
  • wyh7280
  • wyh7280
  • 2015年05月23日 13:15
  • 1032

求连续的最大和,最小和

  • 2013年07月21日 14:01
  • 1KB
  • 下载

求最大最小等例

  • 2014年04月10日 13:28
  • 3KB
  • 下载

分治算法的利用例子(查找最大最小数,快速排序,查看第k小的数字)

//分治法求最大最小值 import java.util.Scanner; public class num2_1_1 {     public static void max_min(in...

减去最大最小求平均分实例

  • 2013年06月05日 01:35
  • 1KB
  • 下载

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

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

求最大、最小、平均值

  • 2012年10月13日 15:09
  • 486B
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:分治求最大最小
举报原因:
原因补充:

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