复杂度为(3/2n)的取出最大值和最小值的算法

#include<stdio.h>
void main()
{
    int a[100],i,j,n,min,max;
    printf("please input the number:\n");
    scanf("%d",&n);
    printf("please input:\n");
    for(i=1;i<=n;i++)
	{
        scanf("%d",&a[i]);
	}
    if(n%2==1)
	{
        min=max=a[1];
	}
    else if(a[1]<a[2])
	{
        min=a[1];
        max=a[2];
	}
    else
	{
        min=a[2];
        max=a[1];
	}
    for(i=1;i<=n;i++)
	{
        if(a[i]>a[i+1])
		{
             if(min>a[i+1])
			 {
                 min=a[i];
			 }
            if(a[i]>max)
			{
                 max=a[i+1];
			}
		}
        else
		{
             if(min>a[i])
			 {
                 min=a[i];
			 }
             if(a[i+1]>max)
			 {
                 max=a[i+1];
			 }
		}
	}
    printf("max=%d min=%d",max,min);
    printf("\n");
}


阅读更多
换一批

没有更多推荐了,返回首页