分治法求数组的最小值和最大值
2012-09-21 11:18
204 查看
** * * 分治法求数组的最小值和最大值 */ import java.util.Arrays; public class MinAndMaxArray { public static void main(String[] args) { int arr[] = { -2, -9, 0, 5, 2 }; int result[] = new int[2]; result = minMax(arr, 0, arr.length - 1); System.out.println(Arrays.toString(result)); } public static int[] minMax(int[] arr, int l, int r) { int min = 0; int max = 0; if (l == r) { min = arr[l]; max = arr[l]; } else if (l + 1 == r) { if (arr[l] < arr[r]) { min = arr[l]; max = arr[r]; } else { min = arr[r]; max = arr[l]; } } else { int mid = (l + r) / 2; int[] preHalf = minMax(arr, l, mid); int[] postHalf = minMax(arr, mid + 1, r); min = preHalf[0] < postHalf[0] ? preHalf[0] : postHalf[0]; max = preHalf[1] > postHalf[1] ? preHalf[1] : postHalf[1]; } return new int[] { min, max }; } }
运行结果:
[-9, 5]
相关文章推荐
- 分治法求数组中的最大最小元素
- 分治法寻找数组最大的两个数和最小的两个数
- 分治法求数组最大最小数
- Java 分治法求数组的最小最大值
- 【分治法】求数组的最大元和最小元
- 【分治法】求数组最大值和最小值(js版)
- 分治法求数组的最大值和最小值
- 用分治法,二分求出数组的最大值和最小值
- 6、 java 输入一个数字组成的数组,输出该数组的最大值和最小值
- java编程:将数组的第一个为最大第二个为最小以此类推
- [BUC-2.10]利用分治的思想求无序数组中的最大值和最小值以及求第二大的值(分治的思想可以使得比较的次数1.5N-2)
- 练习5: 输入一个一维数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
- 数组最大最小方法(二)
- 寻找数组中的最大值和最小值
- 分治法求最大连续子数组
- 数组:鞍点,该行最大,该列最小
- 求任意数据类型(注意任意)数组的最大值和最小值
- JavaScript获取数组中的最大值和最小值
- ios 数组最大值,最小值,平均值,和的快速算法
- 获取数组中最大值和最小值(使用apply或扩展语句 spred operator)