Chinaunix首页 | 论坛 | 博客
  • 博客访问: 750292
  • 博文数量: 217
  • 博客积分: 2401
  • 博客等级: 大尉
  • 技术积分: 2030
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-16 06:58
个人简介

怎么介绍?

文章分类

全部博文(217)

文章存档

2023年(2)

2022年(3)

2021年(29)

2020年(12)

2019年(5)

2018年(5)

2017年(5)

2016年(3)

2015年(6)

2014年(12)

2013年(16)

2012年(9)

2011年(6)

2010年(15)

2009年(30)

2008年(59)

我的朋友

分类:

2008-04-11 01:45:28


find an algorithm for finding the min and max of n numbers by using fewer
than 3n/2 comparisions. ^_^


global int x[n];

void minmax(int i, j, int& min, max)
{
if (i==j)
min=max=x[i];
elseif (j-i==1)
max=x[i]>x[j]?x[i]:x[j];
min=x[i]+x[j]-max;
else
int min1,max1,min2,max2;
int k=(i+j)/2;
minmax(i,k, min1, max1);
minmax(k+1, j, min2, max2);
min=min1>min2?min2:min1;
max=max1>max2?max1:max2;
}

int min, max;
minmax(0,n-1, min, max);

It uses divide and conquer stratege, and has complexity of about 3/2n
阅读(851) | 评论(0) | 转发(0) |
0

上一篇:Chocolate

下一篇:medium vs. mean

给主人留下些什么吧!~~