ソートを挿入ソートのPHPを直接挿入してStraight Insertion Sortを実現

3192 ワード

直接挿入ソート(straight insertion sort)のPHP実装は、array_splice、強い関数を使いました.
view source
print ? 01 function   out_arr( $arr ) { 02      return   implode( ', ' $arr ).' 03 '; 04 } 05
  06 function   sort_straight_insertion( $arr ) { 07      $ret [] =  $arr [0]; 08      for   ( $i   = 1;  $i   count ( $arr );  $i ++ ) { 09          for ( $j   = 0;  $j   count ( $ret );  $j ++ ) { 10              if $arr [ $i ] <  $ret [ $j ] ) { 11                  array_splice ( $ret $j , 0,  array ( $arr [ $i ])); 12                  break ; 13              } 14          } 15          if count ( $ret ) ==  $i   ) { 16              $ret [] =  $arr [ $i ]; 17          } 18          echo   sprintf( '%3d' $i ). ' : ' .out_arr( $ret ); 19      } 20 } 21
  22 echo   '<pre>' ; 23 $arr   = range(1, 20); 24 shuffle( $arr ); 25 echo   'ORG : ' .out_arr( $arr ); 26 sort_straight_insertion( $arr ); 27 echo   '</pre>' ;