02
2020
04

已知两个数组有序实现一个方法将他们合并后任然有序

void MergeSort( int *pMerge, int *p1, int p1len, int *p2, int p2len )  

 {  

    assert( nullptr != pMerge && nullptr != p1 && nullptr != p2 );               


     int i = 0;  

     int j = 0;  

     int k = 0;  

     while( i < p1len && j < p2len )  

     {  

         if( p1[ i ] < p2[ j ] )  

         {  

             pMerge[ k ] = p1[ i ];  

            ++k;  

            ++i;  

         }  

         else  

         {  

            pMerge[ k ] = p2[ j ];  

            ++k;  

            ++j;  

        }  

     }  

     while( i < p1len )  

    {  

         pMerge[ k ] = p1[ i ];  

        ++k;  

         ++i;  

     }  

     while( j < p2len )  

     {  

        pMerge[ k ] = p2[ j ];  

        ++k;  

        ++j;  

     }  

 }  


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。