求数组中的最大最小值

本文介绍了求数组最大最小值的五种方法:问题分解法、取单元素法、取双元素法、数组元素位移法和分治法。重点讲述了取双元素法,通过比较每轮两个元素确定当前的最大值和最小值,从而提高效率。并提供了运行截图作为示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

求数组中最大最小值的几种方法:

  • 问题分解法:遍历两次数组,反别求出最大值和最小值
  • 取单元素法:两个变量,变量min标记最小值,变量max标记最大值,每次循环取出一个元素来与最大值最小值比较。
  • 取双元素法:两个变量,变量min标记最小值,变量max标记最大值,每次循环取出两个元素,先比较两个元素的大小,小的和最小值比较,大的和最大值作比较。
  • 数组元素位移法:将数组中相邻两个数分在一组,每次比较两个相邻的数,将较大的交换至这两个数的左边,较小的放到右边。对大组遍历一遍找出最大值,对小组遍历一遍找出最小值。
  • 分治法:将数组分为两半,分别找出最小值和最大值,再找出两个最小值里的最小值,两个最大值里面的最大值。
  1. 用取双元素法求最大最小值:
package shuzu;

public class MaxMin {    //求数组中的最带最小值(去双元素)
	
	static int Max;
	static int Min;
	
	public static void GetMaxAndMin(int array[]) {
		
		Max = array[0];
		Min = array[0];
		int len = array.length;
		for(int i = 0;i < len-1 ; i = i+2) {
			
			if(i+1>len) {
				if(array[i]>Max)
					Max = array[i];
				if(array[i]<Min)
					Min = array[i];
			}
			
			if(array[i]>array[i+1]) {
				if(array[i]>Max)
					Max = array[i];
				if(array[i+1]<Min)
					Min = array[i+1];
			}
			
			if(array[i]<array[i+1]) {
				if(array[i]<Min)
					Min = array[i];
				if(array[i+1]>Max)
					Max = array[i+1];
			}
		}
		
		
	}
	
	public static void main(String[] args) {
		int array[] = {4,1,7,5,2,8,3,9};
		GetMaxAndMin(array);
		System.out.println("最大值为:"+Max);
		System.out.println("最小值为:"+Min);
	}

}

  1. 运行截图:
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值