分治法之查找最大值

思路:

  1. 定义一个递归函数 findMax,它接受三个参数:数组 arr、起始位置 start 和结束位置 end
  2. 如果 start 等于 end,说明数组中只有一个元素,直接返回该元素的值作为最大值。
  3. 否则,计算数组的中间位置 mid,可以使用 (start + end) / 2 的方式。
  4. 递归调用 findMax 函数来分别处理左半部分和右半部分:
    • 对左半部分,调用 findMax(arr, start, mid),返回左半部分的最大值,将结果存储在变量 leftMax 中。
    • 对右半部分,调用 findMax(arr, mid + 1, end),返回右半部分的最大值,将结果存储在变量 rightMax 中。
  5. 返回 max(leftMax, rightMax),即左右两部分的最大值作为整个数组的最大值。

代码:

#include<iostream>
using namespace std;// 递归函数,用于在数组arr的[start, end]范围内查找最大值
int Findmax(int arr[], int start, int end) {// 当开始索引等于结束索引时,即只有一个元素时,返回该元素作为最大值if (start == end) {return arr[start];}// 计算中间索引int mid = (start + end) / 2;// 递归调用Findmax函数处理左半部分和右半部分int Leftmax = Findmax(arr, start, mid); // 左半部分的最大值int Rightmax = Findmax(arr, mid + 1, end); // 右半部分的最大值// 返回左右两部分的最大值作为整个数组的最大值return max(Leftmax, Rightmax);
}int main() {int arr[] = { 3,1,2,88,7,4,5 };int n = sizeof(arr) / sizeof(arr[0]);int max = Findmax(arr, 0, n - 1); // 调用Findmax函数查找最大值cout << max; // 输出最大值return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/187170.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

XXL-Job详解(一):组件架构

目录 XXL-Job特性系统组成架构图调度模块剖析任务 “运行模式” 剖析执行器 XXL-Job XXL-JOB是一个分布式任务调度平台&#xff0c;其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线&#xff0c;开箱即用。 特性 1、简单&#…

java+springboot实验室管理系统的设计与实现ssm+jsp

课题研究内容&#xff1a; &#xff08;1&#xff09; 系统需求分析&#xff08;构成模块&#xff0c;系统流程&#xff0c;功能结构图&#xff0c;系统需求&#xff09; &#xff08;2&#xff09; 实验室课程安排功能模块&#xff08;课程的录入和调补&#xff09; &#xff…

prompt提示

用例生成 # 任务描述 作为一个高级c程序员&#xff0c;需要完成下列功能的gtest测试用例 # 功能描述 给定两个数字型字符串s1和s2,求和&#xff0c;返回值也是字符串 # 接口举例 调用strAdd("123", "132"),输出“255” # 输出要求 - 入参为空串、nu…

wyler水平仪维修WYLER倾角仪维修CH-8405

瑞士WYLER电子水平仪维修&#xff1b;BIueCLINO倾斜度测量仪维修&#xff1b;wyler电子倾角仪维修。 水平仪常见故障及处理方法 1、 仪表通电不工作。 A、检查仪表220V电源端子接线是否正确 B、检查仪表电容是否熔断&#xff1b; C、拧下仪表后的固定螺钉&#xff0c;将表…

王道数据结构课后代码题p40 4.在带头结点的单链表L中删除一个最小值结点的高效算法(假设最小值唯一) (c语言代码实现)

本题代码为 void deletemin(linklist* L)//找到最小值并删除 {lnode* p (*L)->next, * pre *L;lnode* s p,*sprepre;while (p ! NULL)//找到最小值{if (p->data < s->data){s p;spre pre;}p p->next;pre pre->next;}p s->next;spre->next p;…

有IP没有域名可以申请证书吗?

一、IP证书是什么&#xff1f; ip证书是用于公网ip地址的SSL证书&#xff0c;与我们通常所讲的SSL证书并无本质上的区别&#xff0c;但由于SSL证书通常颁发给域名&#xff0c;而组织机构需要公共ip地址的SSL证书&#xff0c;这类SSL证书就是我们所说的ip证书。ip证书具有安全、…

仅仅通过提示词,GPT-4可以被引导成为多个领域的特定专家

The Power of Prompting&#xff1a;提示的力量&#xff0c;仅通过提示&#xff0c;GPT-4可以被引导成为多个领域的特定专家。微软研究院发布了一项研究&#xff0c;展示了在仅使用提策略的情况下让GPT 4在医学基准测试中表现得像一个专家。研究显示&#xff0c;GPT-4在相同的基…

查看代码运行时间

#include<bits/stdc.h> signed main() {clock_t start_time clock();std::cout<<"hello\n";double tot_time double(clock() - start_time) / 1000; std::cout << "\n代码跑了" << tot_time << "秒";return 0; …

上海毅速丨新材料将推动3D打印在压铸行业的应用

压铸是一种应用广泛的制造工艺&#xff0c;它的制造原理是将液态或半液态金属&#xff0c;在高压作用下&#xff0c;以高速度填充压铸模具型腔&#xff0c;并在压力下快速凝固而获得铸件的一种方法。压铸模的设计和制造需要考虑到多方面的因素&#xff0c;如模具材料、结构、冷…

Java部署服务 Java -jar命令讲解

1. 当前ssh窗口被锁定&#xff0c;可按CTRL C打断程序运行&#xff0c;或直接关闭窗口&#xff0c;程序退出 #正常启动jar包 java -jar XXX.jar#当前ssh窗口被锁定&#xff0c;可按CTRL C打断程序运行&#xff0c;或直接关闭窗口&#xff0c;程序退出。 2. 当前ssh窗口不被锁…

探讨几种在CentOS 7上实现文件上传的方法

最近服务器过期了&#xff0c;把之前服务器的数据库都备份了下来&#xff0c;现在准备迁移各种服务&#xff0c;这就涉及到文件传输。之前用得多的都是xshell里的xtp来传&#xff0c;校园网禁用了ssh协议&#xff0c;还有一大堆乱七八糟的协议&#xff0c;我一般用的代理方法或…

redis sentinel 错误处理

环境 redis-ha主从部署到了k8s上 主从报错日志 主库日志 1:M 29 Nov 2023 07:00:19.277 # Diskless rdb transfer, done reading from pipe, 1 replicas still up. 1:M 29 Nov 2023 07:00:20.058 * Background RDB transfer terminated with success 1:M 29 Nov 2023 07:00…

利用python编写后端程序 通用代码详解 项目实现

前言 最近自己正好有时间&#xff0c;想要自己搭建微信小程序&#xff0c;也正好记录一下自己的搭建过程和内容。 搭建准备工作 这里我使用的时pycharm编辑器。在后端开发中&#xff0c;我们需要三个库&#xff1a; import pymysql from flask import request, Fl…

设计模式详解(二):抽象工厂——Abstract Factory

目录导航 抽象工厂及其作用工厂方法的好处工厂方法的实现关系图实现步骤 工厂方法的适用场景工厂方法举例 抽象工厂及其作用 工厂方法是一种创建型设计模式。所谓创建型设计模式是说针对创建对象方面的设计模式。在面向对象的编程语言里&#xff0c;我们通过对象间的相互协作&…

SAP SD 创建交货单 报错 VL461 VL248

因为生产环境已经被改好了&#xff0c;无法跟踪 所以换到测试环境重现一把&#xff0c;如何追根究底 对比正常订单发现 计划行 VBEP-LMENG,VBEP-BMENG这两个字段上的值跟 订单数量不一致。 尝试修改2者的数据跟订单数据一致&#xff0c;则可以正常创建交货单 实际原因是&a…

【每日一坑】KiCAD导Gerber 文件

第一&#xff0c;软件版本 第二、操作选择注意点 第三&#xff0c;那个坑。。。 不知道什么原因&#xff0c;这第二个框里会选其他不必要得一些东西&#xff0c;导致最终光绘是废的&#xff1b; 一定切记只选edge.cut就好了。 最后&#xff0c;上Gerber图&#xff0c;还有一点…

机器学习入门(第六天)——支持向量机(升维打击)

Support vector machines 知识树 Knowledge tree 苹果表示重点 间隔&#xff1a;使用了几何间隔&#xff0c;保证w b的度量&#xff0c;感知机则是函数间隔 间隔最大化思想&#xff1a;则是支持向量机的独有&#xff0c;这使得它找到最优超平面 核函数&#xff1a;面试当中可…

防火墙补充NAT

目录 1.iptables保存规则 2.自定义链 3.NAT NAT的实现分为下面类型&#xff1a; SNAT实验操作 DNAT实验操作 1.iptables保存规则 永久保存方法一&#xff1a; iptables -save > /data/iptables_rule //输出重定向备份 iptables -restore < /data/iptables_r…

EsayExcel的使用

EsayExcel的使用 引入依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>3.1.1</version> </dependency>类属性中的注解 # 默认下标从0开始&#xff0c;index可以不…

Windows安装Kafka3.6,单机

Kafka版本&#xff1a;kafka_2.13-3.6.0 Windows10系统 安装与配置 下载 kafka_2.13-3.6.0.tgz 下载并解压Kafka 3.6.0的压缩包到你选择的目录。 Kafka3.6.0下载链接https://kafka.apache.org/downloads 说明&#xff1a;Kafka3.6内置了Zookeeper&#xff0c;使用内置的Zo…