マージソートのテンプレートを逆転しようとしている(続きます)

マージソートのトピックを逆転しようとしている(継続的に更新)

\(1 \) \(ウルトラ\) \(クイックソート\) このブログの記事のコードを読む必要があります)

逆の順序でソートをマージしようとしています

詳細:パラメータ3を渡し、左、中央、右の3 - ポイント、ノートエンドポイントの合計と各操作端末の約半分を取って、復帰条件は、約エンドポイントに等しく、この時点でソートしません。

\(ビュー\) \(コード\)

void msort(int l,int mid,int r)
{
    if(l==r)
        return;
    msort(l,(l+mid)>>1,mid);
    msort(mid+1,(r+mid+1)>>1,r);
    int i=l,j=mid+1;
    for(register int k=l;k<=r;k++)
    {
        if(j>r||(i<=mid&&a[i]<a[j]))
            b[k]=a[i++];
        else
        {
            ans+=mid-i+1;
            b[k]=a[j++];
        }
    }
    for(register int k=l;k<=r;k++)
        a[k]=b[k];
}

おすすめ

転載: www.cnblogs.com/Peter0701/p/11247332.html