`
kmplayer
  • 浏览: 508895 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

分治思想,同时返回一个数组的最大值和最小值.

 
阅读更多
1,实例代码:
#include <iostream>
using namespace std;

void maxmin(int a[],int low,int high,int& max,int& min) //引用作为参数的强大作用
{
    int k, max1,min1,max2,min2;
    if(high-low==1||high-low==0)
    {
        a[low]>a[high]? (max = a[low], min = a[high]):(max = a[high], min = a[low]);
    }
    else
    {

        k=(high+low)/2;
        maxmin( a,low,k,max1,min1);
        maxmin( a,k+1,high,max2,min2);
        max=max1>max2? max1:max2;
        min=min1<min2? min1:min2;
    }
}

int main()
{
    int max,min;
    int data[]={8,3,6,2,1,9,4,5,7};
    int num=sizeof(data)/sizeof(data[0]);
    maxmin(data,0,num-1,max,min);
    cout<<"最大值:"<<max<<endl;
    cout<<"最小值:"<<min<<endl;
    return 0;
}
分享到:
评论

相关推荐

    分治算法-求一个数组中的最大值和最小值

    通过分治算法来求解一个数组中的最大值和最小值,不仅可以有效地降低问题的复杂度,还能充分利用计算机的处理能力。此外,这种方法还具有很好的可扩展性和并行处理潜力,非常适合于处理大规模数据集。

    数组最大值最小值_数组最大值最小值_最小值_

    - **预处理**:如果数组会频繁查询最大值和最小值,可以考虑维护一个动态的最大值和最小值,每次插入或删除元素时更新它们。 - **数据特性**:如果数组中的元素已经部分有序,可以利用这个特性优化查找过程,比如...

    分治算法实验(用分治法查找数组元素的最大值和最小值).doc

    分治算法实验(用分治法查找数组元素的最大值和最小值).doc

    求数组最大值,最小值,平均值,排序,寻找指定数据.rar————求数组最大值,最小值,平均值,排序,寻找指定数据

    类似于求最大值,我们可以初始化一个变量为数组的第一个元素,然后遍历数组,每次遇到比已知最小值更小的元素就更新最小值。遍历结束后,变量保存的就是最小值。 3. **计算平均值**: 平均值是所有元素之和除以...

    分治算法实验(用分治法查找数组元素的最大值和最小值).docx

    分治算法实验(用分治法查找数组元素的最大值和最小值) 分治算法是解决复杂问题的一种常用方法,该方法可以将问题分解成多个小问题,然后将小问题的解组合起来,形成原问题的解。分治算法有两个主要步骤:问题分解...

    分治算法实验(用分治法查找数组元素的最大值和最小值).pdf

    该函数是分治法的核心代码,它将数组元素大于 2 的数组分成两个子数组,然后对每一个子数组递归调用,直到最小的子数组的元素个数为 1 个或 2 个,此时直接就能得出最大值与最小值,然后合并子数组,比较 2 个子数组...

    算法-数组排序 按数组内数字大小排序 取得最大值或最小值.rar

    本压缩包文件"算法-数组排序 按数组内数字大小排序 取得最大值或最小值.rar"包含的内容很可能是关于如何实现数组排序以及如何高效地获取数组中的最大值和最小值的详细讲解。 一、排序算法概述 排序算法是用于重新...

    求一组数组的两个最大值和两个最小值 分治法

    - 将 `C1` 和 `C2` 的四个最大值合并为一个新的数组 `Max`,同样将四个最小值合并为一个新的数组 `Min`。 - 再次对 `Max` 和 `Min` 进行排序,以找到最终的两个最大值和两个最小值。 #### 四、代码解析 下面对...

    分治法递归求取数组中的最大和最小值

    利用分治法快速而有效的求出任意数组的最大值与最小值。 编码用C++实现

    分治算法实验(用分治法查找数组元素的最大值和最小值) (2).docx

    分治算法实验(用分治法查找数组元素的最大值和最小值) 在这个实验中,我们使用分治算法来查找数组元素的最大值和最小值。分治算法是一种常用的算法设计方法,它将问题分解成小规模的问题,然后解决这些小问题,并...

    分治算法实验(用分治法查找数组元素的最大值和最小值) (2).pdf

    分治算法实验(用分治法查找数组元素的最大值和最小值) 分治算法实验的主要目标是使用分治法查找数组元素的最大值和最小值。该实验 Report 分别从算法设计思想、程序设计、实验步骤和实验结果几个方面进行了详细的...

    Java 实例 - 数组获取最大和最小值源代码-详细教程.zip

    在学习这个教程的过程中,你不仅会掌握找到Java数组最大值和最小值的基本方法,还会深入理解数组、循环、条件判断和Stream API等核心编程概念。此外,通过分析和优化代码,你还可以提升自己的问题解决能力和代码效率...

    分治法求最大值和最小值

    * 编写一个求出最大值和最小值的分治算法。 实验内容: 我们知道,如果数组大小为 1,则可以直接给出结果,如果大小为 2,则一次比较即可得出结果,于是我们找到求解该问题的子问题,即数组大小 。到此我们就可以...

    用分治法求最大与最小值的问题

    函数接受一个数组、起始索引和结束索引作为参数,返回一个结构体,包含数组中最大值和最小值。以下是一个简单的实现示例: ```c #include &lt;stdio.h&gt; typedef struct { int max; int min; } MinMax; MinMax ...

    最大值和最小值获取

    在编程领域,寻找一个数组中的最大值和最小值是一项基础且重要的任务。这通常涉及到遍历数组元素并比较它们的大小。"最值"这个标签表明我们要探讨的是关于找到数值序列中的最高和最低数值的问题。这里,我们有一个...

    分治算法求最大值与最小值,找最小元素

    这个过程可以递归进行,直到子数组的大小减小到只剩下一个元素,此时子数组的最大值和最小值就是该元素本身。这样,通过分治,我们可以将问题规模减半,时间复杂度降低为O(log n)。 接下来,寻找第k个最小元素。这...

    分治法--找最大值与最小值的代码

    - **合并**:返回左半部分的最大值和最小值,以及右半部分的最大值和最小值,然后比较得到整个数组的最大值和最小值。 下面是一个C++实现的简化版本,没有使用递归,但展示了分治法的基本思路: ```cpp #include ...

    数据结构(JAVA)求一个含有n个整数元素的数组a0..n-1中的最大元素

    在这个例子中,`findMaxElement`方法接收一个整型数组`arr`作为参数,初始时将最大值设为数组的第一个元素。然后,通过一个for循环从数组的第二个元素开始遍历,如果当前元素大于已知的最大值,就更新最大值。当遍历...

    分治法求最大值的C++实现

    在给定的代码示例中,我们看到了分治法用于寻找数组最大值的具体实现。代码的核心是`Max`函数,它接受一个整数数组`a[]`及其下标范围`low`和`high`作为参数。该函数首先检查边界条件: - 如果`low`等于`high`,即...

    树状数组优缺点及场景.zip

    2. 更新和查询效率:对数组中的一个位置进行更新或查询,时间复杂度为O(logN),N为数组长度,这是由于树状数组的分治思想,使得每次操作只涉及少量元素。 3. 简单实现:相比于其他高级数据结构,树状数组的代码实现...

Global site tag (gtag.js) - Google Analytics