ソートアルゴリズム - 挿入ソート

配列決定法を挿入:記録素子が挿入され、前部要素の大きさ比較で、クエリを挿入位置に、それは要素より大きい次いで挿入の空の位置、挿入された要素に戻ります。

残りの手順②と同じ。

ここで最適化する塩基からコードの3種類があります

// 1 
空隙 InsertSort(INT *、int型N)
{ 
    ためint型 i = 1 ; iがn <; ++ I)
    { 
        場合([I] <[I - 1 ])
        { 
            int型の TEMP = [私];
            以下のためにint型 J = 0 ; J <I ++ J)
            { 
                場合(温度< [J])
                { 
                    ためのint型 K = iは、K> J; k-- 
                        [K] [Kが= - 1]; 
                    [J] = TEMP。
                    破ります; 
                } 
            } 
        } 
    } 
}
// 2 
空隙 InsertSort(INT *、int型N)
{ 
    int型私は、jは、
    (i = 1 ; iがn <; iは++ 
    { 
        場合([i]が<I - 1 ])
        { 
            int型の TEMP = [I]。
            (J = I; J> = 0 && [J- 1 ]> TEMP; j-- 
            { 
                [j]は = [jは- 1 ]。
            } 
            [j]は = TEMPと、
        } 
    } 
}
// 3 
ボイド
InsertSort(INT *、int型N) { int型温度; 以下のためにint型 i = 1 ; iがn <; iは++ { int型低= 0、ハイ= I - 1 TEMP = [I]。 一方(低<= 高) { int型ミッド=(ハイロー+)/ 2 もし(温度< [中間]) =ミッド- 1 =ミッド+ 1 ; } のためのint型 - ; J>低J = J) { [j]は [J = - 1 ]。 } [低] = TEMP。 } }

主な方法:

INT のmain()
{ 
    int型 ARR [] = { 923154786 }。
    INT、N = はsizeof(ARR)/ はsizeofINT )。

    InsertSort(ARR、N)。// 插入排序

    ためint型 i = 0 ; iがn <; iは++ 
    { 
        COUT << ARR [I] << "  " 
    } 
    COUT <<endl;
    リターン 0 ; 
}

 

おすすめ

転載: www.cnblogs.com/single-dont/p/11354265.html