使用分治思想 求数组中的最大和最小值
时间:2022-07-25
本文章向大家介绍使用分治思想 求数组中的最大和最小值,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
代码具体实现如下:
package com.zuoyan.algorithm;
public class FindMinMax {
//Main函数进行测试
public static void main(String[] args) {
int[] a=new int[]{1,10,2,19,365,-2,100,28};
MinMax minMax = getMinMax(a, 0,a.length-1);
System.out.println("最小值:"+minMax.getMin());
System.out.println("最大值:"+minMax.getMax());
}
public static MinMax getMinMax(int [] array,int start,int end){
//分治的终止条件 如果 两个坐标相邻 或者是同一个坐标,返回最小的值和最大的值
if(end-start<=1){
if(array[start]>array[end]){
return new MinMax(array[end],array[start]);
}else
{
return new MinMax(array[start], array[end]);
}
}
else{
//如果开始下标和终止下标没有到达终止下标,求出中间坐标
int mid = (start+end)/2;
MinMax left = getMinMax(array, start, mid);
MinMax right = getMinMax(array, mid+1, end);
int max = 0,min = 0;
min = left.getMin()<right.getMin()?left.getMin():right.getMin();
max = left.getMax()>right.getMax()?left.getMax():right.getMax();
//返回查找的最大最小
return new MinMax(min, max);
}
}
}
class MinMax
{
private int max;
private int min;
public MinMax(int min, int max) {
super();
this.max = max;
this.min = min;
}
public int getMax() {
return max;
}
public void setMax(int max) {
this.max = max;
}
public int getMin() {
return min;
}
public void setMin(int min) {
this.min = min;
}
}
- Python-装饰器详解
- Contact Manager Web API 示例[2] Web API Routing
- Android一些关于分辨率和布局的设置
- log4net 中错误 System.Web.HttpException (0x80004005): 文件不存在
- Contact Manager Web API 示例[2] Web API Routing
- Python内置函数
- NET实现微信公共平台上传下载多媒体文件
- css3基础知识——回顾
- Contact Manager Web API 示例[3] 分页和查询(Paging and Querying)
- @font-face css3自定义个性化字体
- 你不知道的javaScript笔记(7)
- Contact Manager Web API 示例[4] 异常处理(Exception Handling)
- 你不知道的javaScript笔记(6)
- 创建支持多种屏幕尺寸的Android应用
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 2015.CCF计算机软件能力认证试题第二题
- Codeforces Round #547 (Div. 3)A. Game 23
- Codeforces Round #547 (Div. 3)C. Polycarp Restores Permutation
- 动态规划入门_数塔问题
- Rust所有者被修改了会发生什么?
- 如何编写高质量代码
- 动态规划入门_钱币兑换问题
- Codeforces Round #547 (Div. 3)D. Colored Boots
- JavaScript 性能优化
- 优化循环的方法-循环展开
- 程序性能优化-局部性原理
- Codeforces Round #547 (Div. 3)E. Superhero Battle
- 《动态规划_入门 LIS 问题 》
- 栅格化系统的原理以及实现
- vue-qr二维码插件使用简介