1. 问题描述
用分治法查找数组元素的最大值和最小值。
2. 方法概述
(1)将数据集 S 均分为 S1 和 S2;
(2)求解 S1 和 S2 中的最大和最小值;
(3)最终的最大和最小值可以计算得到:min( S1, S2 ), max( S1, S2 );
(4)采用同样的处理方法递归处理 S1 和 S2。
分治方法 (Divide and Conquer):
(1)将数据集 S 均分为 S1 和 S2;
(2)求解 S1 和 S2 中的最大和最小值;
(3)最终的最大和最小值可以计算得到:min( S1, S2 ), max( S1, S2 );
(4)采用同样的处理方法递归处理 S1 和 S2。
3. c代码的实现
#include
#include
void binaryFindMinMax (const int *arr, int left, int right, int *min, int *max)
{
if ((right - left) == 1) {
2. 方法概述
3. c代码的实现
#include
#include
void binaryFindMinMax (const int *arr, int left, int right, int *min, int *max)
{

本文介绍了如何运用分治法在数组中查找最大值和最小值。通过将数据集均分为两部分,递归地求解子集的最大值和最小值,最后合并结果得到整个数组的最小值和最大值。提供了C语言的代码实现作为示例。
最低0.47元/天 解锁文章
1565

被折叠的 条评论
为什么被折叠?



