3.シェルソート

1つの#include " pch.h " 
2の#include <iostreamの>
 3。 ボイドシェルソート(INT * A、INT N-)
 4。 {
 5。     int型D;
 6      INT J;
 7      INT I;
 8      int型K;
 9      int型TEMP;
 10      ( = N-D / 2 ; D> = 1 ; D = D / 2){      // 各数値サブポイントへ、そして何回分割の合計、それぞれの場合分けで
11。         ため(J = 0 ; J < D、J ++){   //各部門、dはサブシーケンスであり、正確に、それぞれが最初の要素のための動作のシーケンスに対応する
12ことである             ため(IがJ + dを=、I <N - 、IがI + Dを=){    // 各第1要素第二の要素から始まる最初のソート順序、
13である                  TEMP = ; A [I]
 14                  - K = I D;
 15                  ながら(K> = 0 && A [K]> TEMP)
 16                  {
 17。                      A [K + D ] = A [K]、
 18は                      K = K - D;
 19                  }
 20                  A [K + D] = TEMP;
 21れる             }
 22である         }
 23のIS     }
 24      / * ため(INT 1 = J; J <N-; J ++)
 25      {
 26であり         ; //は、ソート順序の左側に、第二の要素から開始キーA = [J] int型
 27          Iは、J = INT - 1。 //インデックスレコードは、最後の要素のシーケンス順序付け
 28          ながら//前後に、その結果、次の選択された要素の要素及びソートコンパレータのそれぞれ(&& [I]が>キーI> = 0)
 29          {/をあれば、最初の要素が位置に挿入されるよりも小さくなるまで、それは選択された下位より大きい限り/要素
 30              [I + 1]; [I] =
 31である             i--;
 32          }
 33である         [I + 1] =キー、
 34である     } * / 
35  }
 36  INT メイン(){
 37 [      int型 A [8 ] = { 42376985 }。
38      シェルソート(8 )。
39      のためにINT K = 0 ; K < 8 ; K ++ ){
 40          のstd :: COUT << [K] << "  " 41      }
 42 }

 

おすすめ

転載: www.cnblogs.com/Royzzzzz/p/11841427.html
おすすめ