`

归并求解数组中最大最小数

    博客分类:
  • java
 
阅读更多
MaxAndMin.java代码如下:
package com.interview.algorithm;

public class MaxAndMin {
	
	public static void main(String[] args) {
		double[] test = {1,2,3,4,5,6,7,8,9,0,11,24,-2,-3,-4,-6,2,3};
		double[] result = findMaxAndMin(test);
		System.out.println(result[0]);
		System.out.println(result[1]);
	}
	
	public  static  double[] findMaxAndMin(double [] arr){
		    double [] doubleArr = new double[2];
		if(arr.length==2){
			doubleArr[0] = arr[0]>arr[1]?arr[0]:arr[1];
			doubleArr[1] = arr[0]>arr[1]?arr[1]:arr[0];
			
			return doubleArr;
		}else{
			double [] leftArr ;
			double [] rightArr ;
			int len = arr.length;
			if((len/2)%2==1){
				leftArr = new double[len/2-1];
				rightArr = new double[len/2+1];
				for(int i=0;i<len/2-1;i++){
					leftArr[i] = arr[i];
				}
				for(int i=len/2-1;i<len;i++){
					rightArr[i-(len/2-1)] = arr[i];
				}
			}else{
				leftArr = new double[len/2];
				rightArr = new double[len/2];
				for(int i=0;i<len/2;i++){
					leftArr[i] = arr[i];
					rightArr[i] = arr[i+len/2];
				}
			}
			double[] left =  findMaxAndMin(leftArr);
			double[] right =  findMaxAndMin(rightArr);
			double [] result = new double[2];
			result[0] = left[0]>right[0]?left[0]:right[0];
			result[1] = left[1]<right[1]?left[1]:right[1];
			return result;
		}
	}

}



运行结果:
24.0
-6.0
分享到:
评论

相关推荐

    C语言用分治法实现数组归并排序算法实现

    目的: 1.掌握能用分治法求解的问题应满足的条件; 2.加深对分治法算法设计方法的理解与应用; 3.锻炼学生对程序跟踪调试能力;...分:体现在将数组分为小数组。 治:对排好序的数组进行合并。

    我用Python写的一些算法

    使用分治法的最大子数组(应该算成分治法) 使用自底向上方法实现的最大子数组 使用动态规划的两种方式实现的LCS(最大公共串)(下面的算法都会使用动态规划的两种方式来实现) 加权有向无环图中最短路径和最长路径...

    C程序范例宝典(基础代码详解)

    实例030 对调最大与最小数位置 36 实例031 二维数组行列互换 37 实例032 使用数组统计学生成绩 39 实例033 打印5阶幻方 40 1.6 字符和字符串操作 41 实例034 统计各种字符个数 41 实例035 字符串倒置 ...

    数据结构与算法分析Java语言描述(第二版)

    算法分析2.1 数学基础2.2 模型2.3 要分析的问题2.4 运行时间计算2.4.1 一个简单的例子2.4.2 一般法则2.4.3 最大子序列和问题的求解2.4.4 运行时间中的对数2.4.5 检验你的分析2.4.6 分析结果的准确性小结练习参考文献...

    数据结构与算法分析-Java语言描述(第2版)_2_2

    2.4 运行时间计算 2.4.1 一个简单的例子 2.4.2 一般法则 2.4.3 最大子序列和问题的求解 2.4.4 运行时间中的对数 2.4.5 检验你的分析 2.4.6 分析结果的准确性 小结 练习 参考文献第3章 表、栈和队列...

    数据结构与算法分析-Java语言描述(第2版)_1_2

    2.4 运行时间计算 2.4.1 一个简单的例子 2.4.2 一般法则 2.4.3 最大子序列和问题的求解 2.4.4 运行时间中的对数 2.4.5 检验你的分析 2.4.6 分析结果的准确性 小结 练习 参考文献第3章 表、栈和队列...

    数据结构与算法分析_Java语言描述(第2版)]

    堆6.6 左式堆6.6.1 左式堆性质6.6.2 左式堆操作6.7 斜堆6.8 二项队列6.8.1 二项队列结构6.8.2 二项队列操作6.8.3 二项队列的实现6.9 标准库中的优先队列小结练习参考文献第7章 排序7.1 预备知识7.2 插入排序7.2.1 ...

    数据结构与算法分析 Java语言描述第2版

    堆6.6 左式堆6.6.1 左式堆性质6.6.2 左式堆操作6.7 斜堆6.8 二项队列6.8.1 二项队列结构6.8.2 二项队列操作6.8.3 二项队列的实现6.9 标准库中的优先队列小结练习参考文献第7章 排序7.1 预备知识7.2 插入排序7.2.1 ...

    数据结构与算法分析_Java语言描述(第2版)

    2.4.3 最大子序列和问题的求解 2.4.4 运行时间中的对数 2.4.5 检验你的分析 2.4.6 分析结果的准确性 小结 练习 参考文献 第3章 表、栈和队列 3.1 抽象数据类型 3.2 表ADT 3.2.1 表的简单数组实现 3.2.2 简单链表 ...

    C语言通用范例开发金典.part2.rar

    1.1 数组和字符串 2 1.1.1 一维数组的倒置 2 范例1-1 一维数组的倒置 2 ∷相关函数:fun函数 1.1.2 一维数组应用 3 范例1-2 一维数组应用 3 1.1.3 一维数组的高级应用 5 范例1-3 一维数组的高级应用 5 1.1.4...

    C语言通用范例开发金典.part1.rar

    1.1 数组和字符串 2 1.1.1 一维数组的倒置 2 范例1-1 一维数组的倒置 2 ∷相关函数:fun函数 1.1.2 一维数组应用 3 范例1-2 一维数组应用 3 1.1.3 一维数组的高级应用 5 范例1-3 一维数组的高级应用 5 1.1.4...

    C 开发金典

    1.1 数组和字符串 2 1.1.1 一维数组的倒置 2 范例1-1 一维数组的倒置 2 ∷相关函数:fun函数 1.1.2 一维数组应用 3 范例1-2 一维数组应用 3 1.1.3 一维数组的高级应用 5 范例1-3 一维数组的高级应用 5 1.1.4...

Global site tag (gtag.js) - Google Analytics