L,wang

坚持改革,开放人性的弱点……
从1000个数里快速找出老二

//今天去交大考试的地铁上一直在想这个问题,感觉想通了!暂时未找到极端特例与此算法冲突。

int findSecondLargeNumber(int A[n])

{

     int max=A[0],max2=A[1];

     if(max<max2)

      {

        max=max^max2;

        max2=max^max2;

        max=max^max2;

       }// swap max and max2 without third varible;

 

     for( int i=2;i<n;i++)

       {

           if(A[i]>max2)

             {

                 if(A[i]>max)

                   {

                      max2=max;

                      max=A[i];

                    }

                 else

                      max2=A[i];

              }

         }

     return max2;

 }

posted on 2010-11-07 20:16  L,wang  阅读(238)  评论(0编辑  收藏  举报