人気度: 27%
by Popularity Contest 日本語版
by Popularity Contest 日本語版
ひろまささんの連載記事『PHP で遊ぼう』の第6回は if と変数。この記事では並べ替え、いわゆるソートのアルゴリズムについて書かれています。
ソートについて習ったのは大学のときです。サンプルコードは Pascal でした。懐かしさを感じるくらい前の話。3つの数字のソートプログラムを募集とのことでしたので、懐かしついでにやってみました。
PHP:
-
<html>
-
<body>
-
<?php
-
$left = 8;
-
$center = 2;
-
$right = 4;
-
-
// 並べ替えの処理;
-
echo "start: $left $center $right<br />\n";
-
-
if ( $left> $center )
-
{
-
$temp = $center;
-
$center = $left;
-
$left = $temp;
-
}
-
echo "1st: $left $center $right<br />\n";
-
-
if ( $center> $right )
-
{
-
$temp = $right;
-
$right = $center;
-
$center = $temp;
-
}
-
echo "2nd: $left $center $right<br />\n";
-
-
if ( $left> $center )
-
{
-
$temp = $center;
-
$center = $left;
-
$left = $temp;
-
}
-
echo "3rd: $left $center $right<br />\n";
-
?>
-
</body>
-
</html>
ループを使うのが普通ですが、ここはあえて使わない方向で挑んで見ました。長ったらしいコードになってしまっていますが、これはいわゆるバブルソートですね。隣同士を比較して入れ替えていくというやつです。N個の場合の比較回数は N(N-1)/2 で、3(3-1)/2 = 6/2 = 3。なので3回分の if を書いています。
