1、バブルソート(並べ替えアレイ)
関数 bubble_sort($配列) { $カウント = カウント($配列)。 もし($数 <= 0)を返す 偽。 用($ I ; = 0 $ iは < $カウント ; $ iは ++ ){ ため($ J = $カウント -1; $ jの > $ I ; $のJ - ){ 場合($配列 [ $ jの <$配列 [ $ J -1 ]){ $ TMP = $配列 [ $のJ ]。 $配列 [ $ J = $配列 [ $ jを -1 ]。 $配列 [ $ jを -1] = $ TMP 。 } } } リターン $配列; }
2、クイックソート(並べ替え配列)
関数 quick_sort($配列){ 場合(カウント($配列)<= 1)リターン $アレイ。 $キー = $配列 [0 ]。 $ left_arr = 配列(); $ right_arr = 配列(); 用($ I = 1; $ iが < カウント($配列); iは$ ++ ){ 場合($配列 [ $ I <= $キー) $ left_arr [] = $配列 [ $ I ]。 他の $ right_arr [] = $配列 [ $ I ]; } $ left_arr = quick_sort($ left_arr )。 $ right_arr = quick_sort($のright_arr )。 リターン array_merge($ left_arr、配列($キー)、$のright_arr )。 }
図3に示すように、二分探索(素子アレイを見つけるために)
関数 bin_sch($配列、 低$、高$、$ K ){ 場合($低い <= $高い){ $ミッド = INTVAL(($低い +の$ハイ)/ 2 )。 もし($配列 [ $中間 ] == $ K ){ 戻り $ミッド。 } ELSEIF($ K < $配列 [ $中間]){ リターン bin_sch($配列、低$、 $半ば -1、$ K )。 } 他{ 戻り bin_sch($配列、$ミッド + 1、高$、$ K )。 } } 戻り -1 。 }
4、シーケンシャルサーチ(素子アレイを見つけるために)
関数 seq_sch($配列、$ N、 $ K ){ $配列 [ $のN ] = $ K 。 以下のために($ I = 0; $ iは < $ N、$ iは ++ ){ 場合($配列 [ $ I ] == $ K ){ 破ります。 } } 場合($ iは < $ Nを){ 返す 私は$ 。 } 他{ 戻り -1 。 } }
図5に示すように、リニアテーブル(アレイの実装)を除去