概述
描述:
用分治法查找数组元素的最大值和最小值。
输入:随机输入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用分治法查找数组元素的最大值和最小值。所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复