zoukankan      html  css  js  c++  java
  • 求最大值最小值的方法 时间复杂度O(n)

    #include<iostream>    
    #include <iostream>
    #include <bitset>
    #include <ctime>
    using namespace std;
    
    template <size_t UpperBound> class Urand{      //生成随机数
      bitset<UpperBound> used;
    public:
    	Urand(){ srand(time(0)); }
    	double operator() ();
    };
    
    template<size_t UpperBound>
    inline double Urand<UpperBound>::operator()()
    {
    	if(used.count() == UpperBound)
    		used.reset();
    	size_t newval;
    	while(used[newval = rand() % UpperBound])
    		;
    	used[newval] = true;
    	return newval*0.1;
    }
    
    int main(int argc, char* argv[])
    {
    	Urand<10> u;
    	double darr[10];
    	double first = 0.0;
    	double second = 0.0;
    	double min = 0.0;
    	double max = 0.0;
    	for ( int i = 0; i < 10; ++i)
    	{
    		darr[i] = u();
    	}
        
    	int num = sizeof(darr)/sizeof(darr[0]);
    	bool flag = false;
    
    	if( num%2==0 )
        {
            flag = true;
        }
    	else
    	{
            flag = false;
    	}
        
    	if(flag)
    	{  
    	   int i= 0;
    	   first = darr[0];
    	   second = darr[1];
    	   if(first<second)
    	   {
              min = first;
    		  max = second;
    	   }
    	   else
    	   {
              min = second;
    		  max = first;
    	   }
    	}
    	else
    	{
    		min = darr[0];
    		max = darr[0];
    	}
    	
    	   for( flag? i=2 : i=1; i<num; i+=2 )
    	   {
                if( darr[i]<darr[i+1] )
    			{
    			    if( min>darr[i] ) 
    				{
                        min = darr[i];
    				}
    				if( max<darr[i+1] )
    				{
                        max = darr[i+1];
    				}
    			}
    			else
    			{
                    if( min>darr[i+1] )
    				{
                        min = darr[i+1];
    				}
    				if( max<darr[i])
    				{
    					max = darr[i];
    				}
    
    			}
    	   }
    	
        cout<<"Max :"<<max<<endl;
    	cout<<"Min :"<<min<<endl;
    	return 0;
    }
    
    


  • 相关阅读:
    Delphi对接快递单的md5函数
    t+固定资产二维码打印工具2.01(支持微信查询)
    delphi 调用百度识别
    T+固定资产二维码卡片管理(外网版)
    Delphi 10.3.3 THTTPClient Post问题
    钉钉群机器人
    npm 命令集合
    php7的新特性
    ftp服务
    8.1 接口,接口也是一种类型
  • 原文地址:https://www.cnblogs.com/james1207/p/3293793.html
Copyright © 2011-2022 走看看