1.バブルソート

1.1。初期バージョン

1  空隙 bubble_sort_1(INT * ARR、int型の長さ){
 2      INT I、J。
3      (i = 0 ; iは<長さ、iは++ ){
 4          (J = 0 ; J <長-I- 1、J ++ ){
 5              であれば(ARR [J]> [J + ARR 1 ])
 6                  STD: :スワップ(ARR [J]、ARR [J + 1 ])。
7          }
 8      }
 9 }

1.2は1を改良:特定のステップへのサイクルの間、私は、全体的には、注文されたサイクルの直接の終わりを発見した場合。

1つの 空隙(bubble_sort_2 INT []、int型N){
 2       BOOL =ソート ;ソート=ソート;!N-- ){
 3           のためのint型 I = 1!; I = N; iが++ ){
 4               であれば( [I - 1 ]> [I]){
 5               のstd ::スワップ([I - 1 ]、[I])。
6は               =ソート;
7              }
 8           }
 9       }
 10   }

1.3改良2:各逆右端点(後半の点が指示された)記録、並べ替えは、ステップのうちのいくつかは、順序の並べ替えでは省略されているが、左側にその時点から実行することができます。

1  空隙(bubble_sort_3 INT []、int型N){
 2      INT最後= 0 3      INT a_border = N。
4      のためのBOOLソート=  ;ソート=ソート; a_border--!){
 5          ためint型 I = 1 ; I = a_border; iは++!){
 6              場合を([I - 1 ]> [I]){
 7                  のstd ::スワップ([I - 1 ]、[I])。
8                  ソート=;
9                  最後= I;
10              }
 11          }
 12          a_border = 最後;
13      }
 14 }

 

おすすめ

転載: www.cnblogs.com/Royzzzzz/p/11070008.html