#include<stdio.h>
#include<iostream>
using namespace std;
void GoldBrick(int a[], int i, int j, int & fmax, int & fmin);
int main ()
{
int i = 0;
int j = 4;
int fmax, fmin;
int a[j - i + 1] = {1, 3, 5, 2, 4};
GoldBrick(a, i, j, fmax, fmin);
cout << "max=" << fmax << endl <<"min=" << fmin << endl;
}
void GoldBrick(int a[], int i, int j, int & fmax, int & fmin)
{
int mid;
int lmax, lmin, rmax, rmin;
//递归终止条件
if(i == j)//i=j 只传入一个数
{
fmax = a[i];
fmin = a[i];
}
else if(i == j - 1)//传入两个数
{
fmax = a[i] > a[j] ? a[i] : a[j];
fmin = a[i] < a[j] ? a[i] : a[j];
}
else
{
mid = (i + j) / 2;
GoldBrick(a, i, mid, lmax, lmin);//类似于二分法
GoldBrick(a, mid + 1, j, rmax, rmin);
fmax = lmax > rmax ? lmax : rmax;//递归结束后逐层返回 并逐次将最小值和最大值集中到fmax和fmin上
fmin = lmin < rmin ? lmin : rmin;
}
}
[算法设计与分析]4.3.2典型二分法(金块问题)
最新推荐文章于 2024-10-08 14:00:00 发布
本文介绍了一个使用递归算法来寻找数组中最大值和最小值的C++程序实现。该方法通过分治思想,将数组分成两部分分别递归求解,最终汇总得到全局的最大值和最小值。
ACE-Step
音乐合成
ACE-Step
ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言
您可能感兴趣的与本文相关的镜像
ACE-Step
音乐合成
ACE-Step
ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言
11万+





