算法设计分析——最大元、最小元(分治法)

xiaoxiao2025-10-23  8

算法思想:

分解:将数组尽量均等分割解决:当n=1时,该数即为最大元、也是最小元找出元素即可,无需合并。

算法代码(java实现):

import java.util.Arrays; public class MaxnumMinnum { public static void searchMaxMin(int[]arr,int mm[],int low,int high){ if (high==low){ mm[0]=arr[low]; mm[1]=arr[low]; } //此为递归出口 else { int mid = (high - low) / 2 + low; int mml[]=new int[2]; int mmr[]=new int[2]; searchMaxMin(arr,mml,low, mid); searchMaxMin(arr,mmr,mid + 1, high); mm[0]=getMax (mml[0],mmr[0] ); mm[1]=getMin (mml[1],mmr[1] ); } } public static int getMax ( int a,int b ){ if (a>b) return a; else return b; } public static int getMin ( int a,int b ){ if (a>b) return b; else return a; } public static void main(String[] args){ int array[]=new int[]{8,2,2,4,5,7,9}; int n=array.length-1; System.out.println(Arrays.toString(array)); int mm[]=new int[2];//第一个放大的,第二个放小的 searchMaxMin (array, mm,0,n); System.out.println("max="+mm[0]); System.out.println("max="+mm[1]); } }```
转载请注明原文地址: https://www.6miu.com/read-5038382.html

最新回复(0)