単純な選択ソートアルゴリズムの実装コード

1つの#include <stdio.hの>
 2  の#define N 12である
 3。 // 最後の要素の戻り統計配列インデックスの長手方向の長さ
4。 int型(長INT [N]){
 5。     ためのint型 I = 0 ;私は= Nを< ; I ++ ){
 6。         IF([I] == 0を返す I-を1。;
 7          
。8      }    
 。9  } 
 10  // プリントアウトアレイ要素
。11  ボイド(表示INT [N]){
 12である     ためINT I = 0; Iは、N <; Iを++ ){
 13は、         IF([I] =!0)のprintf(" %の4D " 、Aは、[I]);
 14          
15      }
 16  } 
 17  
18である  // 単純選択ソート
。19  空隙 SelectSort(int型A [N]){
 20は       INT 分;
 21である             INT DEX;        // 最小インデックス
22は、                INT TEMP;  
 23である     ためINT K = 0 ; K <=長さ(A) - 1 ; Kは++){ // カーソルKセット   
24                =分A [K];                   
 25      INT I = K; IはA(=長さ<) - 1 ; Iは++){   // 最小値を見つけ、カーソルは、アレイの最も左側の位置に配置され、カーソルが右に移動し、
26である          
27      / *!この文では動作しませんソートあり、その理由は?IF(分<A [I +. 1])    
{28          DEX = K;
         29}  * / 30 (min> IF Aは、[I +は1。]){
 31である          分= A [I +は1 ];
 32          DEX = I + 1 33れます    }        
 34である    }
 35      TEMP = ; A [K] 
 36 
                 [K] = 分;
 37 [      A [DEX] = TEMP; 
 38である     }       
 39  }
 40  
41である INTメイン(ボイド{)
 42である     INT A [N] = { 237122であり3534であります467 }; // A手動アレイ生成
43である      のprintf(" %Dの\のN- " 、長さ(A))、
 44である     。SelectSort(A)
 45      を表示する(A);   //出力1233573434467結果が正しい
46で     戻り 0 ;
 47 }

最初のコード。アイデアは、左にカーソルKを常に比較されるの左、挿入の最小に非常に単純な要素です。(あることをここに挿入、実際には、オリジナルの左端の要素の最小の要素はこれだけ習慣を話すように、真正な使用はありませんが、挿入していたほとんどのソートアルゴリズム交換した場合)

選択されたコードは、以下のフォームにソートする場合

ボイド SelectSort(INT A [N]){
       int型分;
             INT DEX;        // 最小インデックス
               のint TEMP;  
     のためのint型 kは= 0 ; K <=長さ(A) - 1 ; kは++){ // カーソルKを設定します   
               =分A [K];                   
     のためint型 I = Kと、私は=長さ(A)を< - 1。 ; Iは++){   // 最小値を見つけ、カーソルが配列の左端の位置に配置され、カーソルが右に移動します。
         
        場合(分<iは+ 1 ]){    
        DEX = K。
        } 
         もし(分> [iが+ 1 ]){ = [I + 1 ]。
        DEX = I +は1 ;
    }        
    }
    TEMP = [K]。
    [K] = 分。
    [DEX] = TEMP。
    }       
}

出力は、それが注目されるべきである2371223534 467となり

  場合(分<[I + 1 ]){    
        DEX = K。
        }このコードは、プログラムコードの追加後、必要ではありませんが、正しい結果を得ることはありません。分<[私は1 +]は、のように何もしないとき。

おすすめ

転載: www.cnblogs.com/Insertt/p/11724963.html
おすすめ