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
分享到:
相关推荐
目的: 1.掌握能用分治法求解的问题应满足的条件; 2.加深对分治法算法设计方法的理解与应用; 3.锻炼学生对程序跟踪调试能力;...分:体现在将数组分为小数组。 治:对排好序的数组进行合并。
使用分治法的最大子数组(应该算成分治法) 使用自底向上方法实现的最大子数组 使用动态规划的两种方式实现的LCS(最大公共串)(下面的算法都会使用动态规划的两种方式来实现) 加权有向无环图中最短路径和最长路径...
实例030 对调最大与最小数位置 36 实例031 二维数组行列互换 37 实例032 使用数组统计学生成绩 39 实例033 打印5阶幻方 40 1.6 字符和字符串操作 41 实例034 统计各种字符个数 41 实例035 字符串倒置 ...
算法分析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 分析结果的准确性小结练习参考文献...
2.4 运行时间计算 2.4.1 一个简单的例子 2.4.2 一般法则 2.4.3 最大子序列和问题的求解 2.4.4 运行时间中的对数 2.4.5 检验你的分析 2.4.6 分析结果的准确性 小结 练习 参考文献第3章 表、栈和队列...
2.4 运行时间计算 2.4.1 一个简单的例子 2.4.2 一般法则 2.4.3 最大子序列和问题的求解 2.4.4 运行时间中的对数 2.4.5 检验你的分析 2.4.6 分析结果的准确性 小结 练习 参考文献第3章 表、栈和队列...
堆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 ...
堆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 ...
2.4.3 最大子序列和问题的求解 2.4.4 运行时间中的对数 2.4.5 检验你的分析 2.4.6 分析结果的准确性 小结 练习 参考文献 第3章 表、栈和队列 3.1 抽象数据类型 3.2 表ADT 3.2.1 表的简单数组实现 3.2.2 简单链表 ...
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...
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...
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...