<?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文で配列の数だけ比較するので、大きな配列だとすごく時間がかかる。
ソートに限らず、アルゴリズムって全然勉強してないからよくわからない。
数学の知識がないから余計にさっぱり。
普通は組み込みのソート関数を使うから、いざ自分で書いてみるとバブルソートくらいしか書けないんだよね。勉強しなきゃ!