赞
踩
问题描述:给出一个数组,包含N个整数,那么需要比较多少次找到最大值和最小值
注意:要想得到最大值和最小值,遍历一遍数组是不可避免的。我们能减少的就是减少比较次数来提高效率
方法一、遍历一遍数组,同时得到最大值和最小值
具体是,定义一个max 和 min,每遍历一个数,就分别和max 和 min比较一次,直到处理完所有的数据
比较次数: N+N = 2N
方法二、我们可以把数组中的数据两两分组,分组内找出最大值 和 最小值,之后在最大值的那部分找出最大值,在最小值那部分找出最小值
比较次数:
两两比较,较小值放到左边,较大放右边,这时比较N/2次
之后,得到的最大值部分是 N/2个数,最小值部分是N/2个数
之后在 最大值部分 取出最大值。比较次数N/2
<Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。