ソートアルゴリズムアルゴリズム-shell(為替)

分析は、ループの最後の3を見て、コメントアウトを見ることができます

パッケージcom.ebiz.sort; 

インポートjava.util.Arrays; 

/ ** 
 * @author YHJ 
 * @Create 2019年7月30日8時53分
 *シェルの並べ替え-為替
 * / 
パブリック クラスシェル{ 

    公共の 静的な 無効メイン(文字列[]引数){ 

        INT [] ARR = {8,9,1,7,2,3,5,4,6 }; 
        のgetResult(ARR); 
       // のSystem.out.println(Arrays.toStringの(ARR)) ; 

        // 第2のパケット5/2 = 22基、ステップ2の各間隔は、二つの数字である
         // グループ5、アウターループ、第四のグループ、8回の合計の数
 //         {ため(I ++は; Iは<arr.length I = 2 INT)
 //             //は、ステップサイズの数を比較するために確立
 //            用(INT I = J-2、J> = 0; = J-2){
 //                 IF(ARR [J]> ARR [J + 2]){
 //                     INT ARR TEMP = [J + 2];
 / /                     ARR [J + 2] = ARR [J];
 //                     ARR [J] = TEMP;
 //                 }
 //             }
 // 
//         }
 //         するSystem.out.println(のArrays.toString(ARR)); 

        / / 3パケット2/2 = 1 ,,各区間グループ番号2つのステップは、1である
         @ グループ番号10、アウターループ、グループ9,9の合計
 //         ため(INT 1 = I; I <arr.length; I ++){
 //             // ステップの数を確立が比較される
 //             のための(INT 1-I = J; J> = 0; J- = 1){
//                 IF(ARR [J]> ARR [J + 1]){
 //                     INT ARR TEMP = [J + 1];
 //                     ARR [J + 1] = ARR [J];
 //                     ARR [J] = TEMP;
 //                 }
 //             }
 // 
//         } 
        のSystem.out.println(のArrays.toString(ARR)); 

    } 

    パブリック 静的 ボイドのgetResult(INT [] ARR){
 //         // 最初のパケット10/2 = 55基、ステップ5 2つの数の各間隔
 //         // 二つの数字、アウターループグループ1、5回の合計のセット
 //         のための(I = 5 int型、Iは< arr.length;私は++){
 //             //ステップの数を確立することと比較する
 //             ため(INT 5-I = J; J> = 0; J- = 5){
 //                 IF(ARR [J]> ARRの[+ J. 5]){
 //                     INT ARR = TEMP [+ J. 5];
 //                     ARRの[+ J. 5] = ARR [J];
 //                     ARR [J] = TEMP;
 //                 }
 //             }
 // 
//         } 

        // コンポーネントの数を制御します
        INT I = arr.length / 2; I> = 1; I / = 2 ){
             // 各比較の数を制御
            するためのINT J = I; J <arr.length; J ++ ){
                 // 各比較交換
                以下のためにint型 K = JIは、K> = 0; K- = I){
                     場合(ARR [K]> [K + ARR I]){
                         int型の一時=のARR [K + I]; 
                        ARR [K + I] =のARR [K]。
                        ARR [K] = TEMP。
                    } 
                } 

            } 


        } 


    } 

}

完璧であるために...

おすすめ

転載: www.cnblogs.com/jiushixihuandaqingtian/p/11299220.html