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;
    }
    
    


  • 相关阅读:
    SAP 用户权限解剖
    效率极低人群的七大习惯你占了几项? 迎客
    数据库到底用不用外键 迎客
    办公室生存——与人相处的30个原则 迎客
    虚拟机 VirtualBox 迎客
    fancybox 迎客
    遥志代理服务器软件CCProxy 迎客
    JRE和JDK的区别 迎客
    小众软件 迎客
    网络推广方法汇集 迎客
  • 原文地址:https://www.cnblogs.com/james1207/p/3293793.html
Copyright © 2011-2022 走看看