给定一个数组,求数组中的最大元和最小元(即最大值和最小值)

法1:直接求解

#include<iostream>
using namespace std;int main(){int n,a[100];cin>>n;for(int i=0;i<n;i++){cin>>a[i];}int max=a[0],min=a[0];for(int i=1;i<n;i++){if(a[i]<min)min=a[i];if(a[i]>max)max=a[i];}cout<<max<<" "<<min;
}

法二:分治法
将数组一分为二,先求解左边的最大元和最小元,再求解右边的最大元和最小元,然后左边的最大元,右边的最大元,取最大即为整体的最大元;最小元同理。

/*
法2:分治法
*/
void max_min(int a[],int l,int r,int &max,int &min){int n=r-l+1;int p=n/2;if(n==1){//只有一个元素 max=a[l];min=a[l];}else if(n==2){//只有两个元素 max=a[l]>a[r]?a[l]:a[r];min=a[l]<a[r]?a[l]:a[r];}else{//有大于两个元素时 int lmax,lmin,rmax,rmin;//左边最大元、最小元、右边最大元、最小元 max_min(a,l,p,lmax,lmin);//求左边的最大元和最小元 max_min(a,p+1,r,rmax,rmin);//求右边的最大元和最小元 max=lmax>rmax?lmax:rmax;min=lmin<rmin?lmin:rmin;}}
//测试
int main(){int n,a[100];cin>>n;for(int i=0;i<n;i++){cin>>a[i];}int max,min;max_min(a,0,n-1,max,min);cout<<max<<" "<<min;return 0;}

最大元和最小元(直接求解法和分治法)相关推荐

  1. 最近点对问题(蛮力法和分治法)

    最近点对问题(蛮力法和分治法) 1.一维空间 1.1蛮力法 1.2分治法 2.二维空间 代码参考链接: http://t.csdn.cn/flREB 1.一维空间 1.1蛮力法 代码: import ...

  2. 二分法和分治法概念区别--记录

    1.二分法和分治法的概念区别: 二分搜索每次都要舍弃一半,从留下的一半中寻找目标:而分治法把一个大问题分成两个或多个小问题,递归地求这些小问题的解,最后再把它们小心谨慎的合并起来,并且要仔细考虑合并时 ...

  3. C语言实现最大字段和(动态规划法和分治法)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.动态规划法 二.分治法 三.程序总代码 总结 前言 本次将对最大字段和使用C语言实现的两种方法实现,动态规划法和分 ...

  4. 主元素问题(蒙特卡洛法和分治法)

    主元素问题描述 设T为一个有n个元素的数组,当T中某个元素x的个数大于n/2时,称x为T的主元素. 蒙特卡洛算法简介 蒙特卡洛算法(Monte Carlo),是一种不确定性化算法,并无法保证一定能够得 ...

  5. Leetcode 240 Search a 2D Matrix II (二分法和分治法解决有序二维数组查找)

    1.问题描述 写一个高效的算法,从一个 m×n m\times n的整数矩阵中查找出给定的值,矩阵具有如下特点: 每一行从左到右递增. 每一列从上到下递增. 2. 方法与思路 2.1 二分查找法 根据 ...

  6. 算法设计与分析 实验二 分治法求解最近点对问题

    分治法求解最近点对问题 一.实验目的与要求 1.实验基本要求 2.实验亮点 二.实验内容与方法 三.实验步骤与过程 (一)一些准备工作 1.实验流程 2.数据生成与去除重复点 (二)暴力穷举法 1.算 ...

  7. 【算法设计与分析】-- 分治法

    1.分治法的基本思想 分治法的基本思想是将一个规模为n的问题分解为k个规模为较小的子问题,这些子问题互相独立且与原问题相同,递归地求解这些子问题,然后利用子问题的解合并出原问题的解. 2.分治算法的设 ...

  8. 深大算法设计与分析实验二——分治法求最近点对问题

    源代码: 深大算法设计与分析实验二--分治法求最近点对问题代码-C/C++文档类资源-CSDN下载 目录 实验问题 一.实验目的: 二.内容: 三.算法思想提示 产生不重复的随机点算法: 蛮力算法: ...

  9. 分治法基本思想(汉诺塔问题 Tower of Hanoi)

    文章目录 前言 基本思想 适用的问题 求解步骤 分治法要点 时间复杂性分析 举例-汉罗塔问题(Tower of Hanoi) 问题描述 解决步骤 java代码 前言 分治法来源于孙子兵法谋攻篇中写道- ...

最新文章

  1. 密码学摘要算法之MD5
  2. 【 C 】预处理指令
  3. java伪装成mysql从节点_开发时java项目启动时需要连mysql等,有没有什么工具可以mock连接使得启动顺利不报错?...
  4. 大数据WEB阶段(二十)更新丢失
  5. Android获取设备已安装的应用
  6. CSS盒子模型之详解
  7. java 单元测试_在springboot中写单元测试解决依赖注入和执行后事务回滚问题
  8. 拓端tecdat:R语言主成分回归(PCR)、 多元线性回归特征降维分析光谱数据和汽车油耗、性能数据
  9. 应用程序框架实战四:你需要应用程序框架吗
  10. 64位电脑c语言程序下载,vc2010 x64位
  11. 联想云计算机终端,联想云桌面
  12. MATLAB简单入门
  13. ps把一张图里面的文字去掉而不改变字后面的背景;把同一个颜色的改为别的颜色
  14. Python 第六章 面向对象编程(MD模式)
  15. ps中怎么把人物的腿给p长
  16. 【iOS-Cocos2d游戏开发之十六】添加本地通知(UILocalNotification)以及添加系统组件滚动视图(UIScrollView)!【2011年11月15日更新】
  17. MD5生成与校验(Linux/UNIX/Windows)
  18. 虚拟服务器欠费是什么原因,辟谣:Elysium解释近期服务器崩溃的原因 非服务器欠费 而是闪电...
  19. 哈密顿插值c语言,哈密顿系统有限元方法的长时间性质研讨——冯康猜想的证明.pdf...
  20. SeedLab10: Linux Firewall Exploration Lab

热门文章

  1. 计算机课小组主题作业,计算机应用课程小组学习法的实践
  2. 京东商城ContainerLB实践
  3. Keras实现两个优化器:Lookahead和LazyOptimizer
  4. 老挑毛 win7 linux,老挑毛u盘启动工具下载
  5. 【狂神说Java】视频笔记
  6. ISTQB基础级认证参考书
  7. 数据科学家必须知道的10个深度学习架构
  8. 关于抽象工厂模式的定义和实现
  9. 项目管理培训的一些总结
  10. 如何运用亚马逊、Facebook、Etsy选品?选品平台和方法分享