2016408アルゴリズムのトピック

基本的な考え方:n個の整数のピボット分割プロセスに基づいてモデル化し、高速配列決定法。

iは= N / 2、次いで、パケットが完了すると、アルゴリズムを終了します

iがn / 2 <場合、フロントピボット要素iは、要素を分割した後に続けて、A1属し

I> N / 2の場合は、次の要素が私の前に要素分割続ける、A2を回動に属し

([]、int型N INT)のint set_partition 
{ 
    int型pivotkey、低= 0、LOW0 = 0、ハイ= N-1、high0 = N-1、フラグ= 1、K = N / 2、I。
    int型S1 = 0、S2 = 0; 
    一方、(フラグ)//选择枢轴
    { 
        pivotkey = [0]。
        一方(低<高)
        { 
            一方(低<高&& [高]> = pivotkey) -高いです。
            IF(!ロー=高)[低]は[高] =。
            ++低い(低<高&& <= pivotkey [低])一方、
            IF(!ロー=高)[高]は[低] =。

        } 
        [低] = pivotkey。
        IF(低==のK-1)// N / 2小元素如果枢轴是、则划分成功
            フラグ= 0。
        他{ 
            (低<K-1)であれば
            { 
                LOW0 = ++低いです。
                高い= high0。
            } 
            他{ 
                high0 = -高いです。
                低= LOW0。
            } 
        } 
    } 
    のために(i = 0; I <K; iは++)、S1 + = A [i]は、
    S2 + = A [i]は、(; I <K iが++ I = 0)のための 
    S2-S1を返します。
}

  

おすすめ

転載: www.cnblogs.com/yangmenda/p/11707511.html