现在的位置: 首页 > 综合 > 正文

求数组中的最大和最小值

2018年06月07日 ⁄ 综合 ⁄ 共 309字 ⁄ 字号 评论关闭

解法一:使用常规的解法,时间复杂度为N,比较次数看似2N,但实际上大于max的就不必和min比较了,同理,小于min的就不必和max比较了,因此比较的次数不足2N次

#include<stdio.h>
int main(void)
{
	int a[5]={3,2,6,8,1};
	int min=a[0];
	int max=a[0];
	int i;
	for(i=0;i<=4;i++)
	{
		if(min>a[i])
		{
			min=a[i];
		}
		else if(max<a[i])
		{
			max=a[i];
		}
	}
	printf("max=%d,min=%d",max,min);
	return 0;
}

还有一些递归的做法,比较次数是1.5N,但是实际上效率是比较低的,后续讲解

【上篇】
【下篇】

抱歉!评论已关闭.