アルゴリズムの設計と解析 - クイックソート

、次の3つのステップの並び順:クイックソートは分割統治戦略に基づいて、他のソートアルゴリズムであり、基本的な考え方は、サブアレイ[R P]のために入力されます。

 

プライベート 静的 ボイド、qソート(INT P、INT R&LT)
{ 
    IF(P < R&LT)
    { 
        int型 Q = パーティション(P、R&LT)
        、qソート(P、Q -1); // 左半分をソート 
        のqsort(Q + 1 、R&LT); // 右半分のセグメントの順序
    } 
}

 

 

プライベート 静的 int型のパーティション(int型 P、INT R&LT)
{ 
    int型 Iは= P;
     INT J = 1 + R&LT。 
    匹敵X = A [P];
     // <左側の領域にX交換素子
     // 意志>要素x右側領域に切り替え
    ながらtrueに
    { 
        一方([++ I] .compareTo(X)<0 && I < R&LT);
         一方、([ - J] .compareTo(X)> 0 );
         IF(I> = J)BREAK ; 
        MyMath.swap(A、I、J); 
    } 
    A [P]は = [J]を。
    [J]= X。
    リターンJ。
}

 

 

 ここで無限ループがある理由を説明するには?あなたは[P]を選択した場合は、ベンチマークが分割されると、[p]は次のとおりです。[P rは]最小の要素が無限ループに分類されないのはなぜ?

 

おすすめ

転載: www.cnblogs.com/wkfvawl/p/11517280.html