设为首页 加入收藏

TOP

2.4.3 查找数组中的最大值
2014-03-11 13:03:40 来源: 作者: 【 】 浏览:134
Tags:2.4.3 查找 最大值

2.4.3  查找数组中的最大值

假设有一个整型数组anArray,要在这个数组中找出最大值。创建一个迭代解决方案并不困难,但此处考虑使用递归方案:
 

  1. if (anArray has only one entry)  
  2. maxArray(anArray) is the entry in anArray  
  3. else if (anArray has more than one entry)  
  4. maxArray(anArray) is the maximum of  
  5. maxArray(left half of anArray) and maxArray(right half of anArray) 

注意,该策略符合本章开头曾出现的折半查找算法的分而治之模型。所谓分而治之,就是通过分解问题并控制子问题逐步推进,如图2-12所示。但这个算法与折半查找算法有所不同。折半查找算法每步只控制一个子问题,而maxArray控制两个子问题。由于两个子问题都涉及递归,因此这种方法被称为多路径递归(multipath recursion)。当maxArray解决子问题后必须协调两个解决方案,也就是说必须查找两个最大值之中的最大值。图2-13显示了在包含1、6、8和3的数组(用<1,6,8,3>表示)中查找最大整数的计算过程。

注释:maxArray每步都要解决两个子问题

问题8 根据前面给出的伪代码,定义返回数组中最大值的C++递归函数maxArray。
 

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇2.4.2 折半查找(2) 下一篇2.4.4 查找数组中第k个最小值

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·HTTPS 详解一:附带 (2025-12-26 02:20:37)
·TCP/IP协议到底在讲 (2025-12-26 02:20:34)
·TCP和UDP在socket编 (2025-12-26 02:20:32)
·有没有适合新手练习 (2025-12-26 01:48:47)
·用清华镜像网怎么下 (2025-12-26 01:48:44)