首页 > 其他 > 详细

3*n/2时间内求出最大最小值

时间:2015-04-03 13:14:07      阅读:151      评论:0      收藏:0      [点我收藏+]
#include<iostream>
using namespace std;
void getMaxMin(int a[], int len)
{
    int max, min;
    if (len % 2)
    {
        max = min = a[0];
        for (int i = 1; i < len; i += 2)
        {
            if (a[i] < a[i + 1])
            {
                if (a[i + 1]>max)
                {
                    max = a[i + 1];
                }
                if (a[i] < min)
                {
                    min = a[i];
                }
            }
            else
            {
                if (a[i]>max)
                {
                    max = a[i];
                }
                if (a[i + 1] < min)
                {
                    min = a[i + 1];
                }
            }
        }
    }
    else
    {
        if (a[0]>a[1])
        {
            max = a[0];
            min = a[1];
        }
        else
        {
            max = a[1];
            min = a[0];
        }
        for (int i = 2; i < len; i += 2)
        {
            if (a[i] < a[i + 1])
            {
                if (a[i + 1]>max)
                {
                    max = a[i + 1];
                }
                if (a[i] < min)
                {
                    min = a[i];
                }
            }
            else
            {
                if (a[i]>max)
                {
                    max = a[i];
                }
                if (a[i + 1] < min)
                {
                    min = a[i + 1];
                }
            }
        }

    }
    cout << "max:\t" << max << endl;
    cout << "min:\t" << min << endl;
}
int main()
{
    int a[] = {1,4,5,2,8,9,2,0,11,22,345,1,3};
    int N = sizeof a / sizeof a[0];
    getMaxMin(a, N);
}

 

3*n/2时间内求出最大最小值

原文:http://www.cnblogs.com/liuhg/p/MAXMIN.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!