バブルソート

<?php

$h = array('2','5','3','1');

for($i=0;$i<count($h);$i++){
   for($j=count($h)-1;$j>$i;$j--){
      if($h[$j]<$h[$j-1]){
        $k = $h[$j];
        $h[$j] = $h[$j-1];
        $h[$j-1] = $k;
      }
   }
}

var_dump($h);

一番簡単なソートのアルゴリズム
値を比較して片方が大きかったら入れ替える。
for文で配列の数だけ比較するので、大きな配列だとすごく時間がかかる。
ソートに限らず、アルゴリズムって全然勉強してないからよくわからない。
数学の知識がないから余計にさっぱり。
普通は組み込みのソート関数を使うから、いざ自分で書いてみるとバブルソートくらいしか書けないんだよね。勉強しなきゃ!