Chinaunix首页 | 论坛 | 博客
  • 博客访问: 394846
  • 博文数量: 82
  • 博客积分: 2085
  • 博客等级: 大尉
  • 技术积分: 808
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-10 10:28
文章分类

全部博文(82)

文章存档

2014年(1)

2013年(4)

2012年(2)

2011年(3)

2010年(10)

2009年(36)

2008年(26)

我的朋友

分类: C/C++

2009-02-23 10:32:15

//非递归算法查找未使用二分法
int Max(int a[], int n){
 int max_ret;
 int i;
 max_ret = a[0];
 for(i=0; i  if(max_ret < a[i]) max_ret = a[i];
 }
 return max_ret;
}
   
//二分法的递归算法实现
void Max_digui(int a[], int i, int j, int *max){
 int middle;
 int max1;
 if(i==j) *max = a[i];//递归结束条件
 else{
  if((i+1) == j){
  if(a[i] > a[j]) *max = a[i];
  else *max = a[j];
 }else{
   middle = (i + j)/2;
  Max_digui(a, i, middle, &max1);
  Max_digui(a, middle+1, j,max);
  if(max1 > *max) *max = max1;
 }
 }
}

int main(int argc, char* argv[])
{
 int a[] = {1, 4, 15, 2, 27, 27, 12, 14, 27};
 int max;
 max = Max(a, 9);
 printf("非递归%d\n", max);
 
 Max_digui(a, 0, 8, &max);
 
 printf("递归:%d\n", max);
 printf("Hello World!\n");
 return 0;
}
阅读(3702) | 评论(1) | 转发(0) |
0

上一篇:天线详解

下一篇:FFMpeg框架代码

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

tomoowang2009-03-03 10:42:13

自己写的有错误希望同志们给斧正!