!-- Loading 底层遮罩 -->

归并排序

归并排序模板

void  merge_sort ( int  a [ ] ,  int  l ,  int  r )
{
    if  ( l  ==  r )  return ;
    int  mid  =  ( l  +  r )  >>  1 ;
    merge_sort ( a ,  l ,  mid ) ,  merge_sort ( a ,  mid  +  1 ,  r ) ;
    for  ( int  i  =  l ,  j  =  l ,  k  =  mid  +  1 ;  i  <=  r ;  i++ )
    {
        if  (  j  ==  mid  +  1 )  t [ i ]  =  a [ k++ ] ;
        else  if  ( k  ==  r  +  1 )  t [ i ]  =  a [ j++ ] ;
        else t [ i ]  =  a [ j ]  <  a [ k ]  ?  a [ j++ ]  :  a [ k++ ] ;
    }
    for  ( int  i  =  l ;  i  <=  r ;  i++ )  a [ i ]  =  t [ i ] ;
}

 

posted @ 2022-03-30 18:07  Thinker-X  阅读(19)  评论(0)    收藏  举报