我是靠谱客的博主 超级曲奇,最近开发中收集的这篇文章主要介绍Java用分治法查找数组元素的最大值和最小值。,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

描述:

用分治法查找数组元素的最大值和最小值。

输入:随机输入10个整数
输出: max=最大的那个数 min=最小的那个数

public class MaxAndMin{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String[] strNums = sc.nextLine().split(" ");
sc.close();
int[] nums = new int[strNums.length];
for (int i = 0; i < strNums.length; i++) {
nums[i] = Integer.parseInt(strNums[i]);
}
int[] Max = new int[1];
int[] Min = new int[1];
maxAndmin(nums, 0, nums.length - 1, Max, Min);
System.out.println("max:"+Max[0]);
System.out.println("min:"+Min[0]);
}
public static void maxAndmin(int[] a, int left, int right, int[] maxnum, int[] minnum) {
if (left == right) {
maxnum[0] = a[left];
minnum[0] = a[right];
} else if (left + 1 == right) {
if (a[left] > a[right]) {
maxnum[0] = a[left];
minnum[0] = a[left];
} else {
maxnum[0] = a[right];
minnum[0] = a[left];
}
} else {
int m = (right + left) / 2;
int lmax[] = { 0 };
int lmin[] = { 0 };
int rmax[] = { 0 };
int rmin[] = { 0 };
maxAndmin(a, left, m, lmax, lmin);
maxAndmin(a, m + 1, right, rmax, rmin);
if (lmax[0] > rmax[0]) {
maxnum[0] = lmax[0];
} else {
maxnum[0] = rmax[0];
}
if (lmin[0] < rmin[0]) {
minnum[0] = lmin[0];
} else {
minnum[0] = rmin[0];
}
}
}
}

 

转载于:https://www.cnblogs.com/outxiao/p/10605231.html

最后

以上就是超级曲奇为你收集整理的Java用分治法查找数组元素的最大值和最小值。的全部内容,希望文章能够帮你解决Java用分治法查找数组元素的最大值和最小值。所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(64)

评论列表共有 0 条评论

立即
投稿
返回
顶部