关闭

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

141人阅读 评论(0) 收藏 举报
#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");
}


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:30075次
    • 积分:993
    • 等级:
    • 排名:千里之外
    • 原创:74篇
    • 转载:6篇
    • 译文:0篇
    • 评论:4条
    文章分类
    最新评论