Google Crisis Response(Google)
災害に関する情報源や、行方不明者情報の収集と検索を行う『パーソンファインダー』を初めとするツールの提供が行われています。

2007年3月6日 火曜日

PHP による並べ替え

Filed under: コンピューター,雑多
時間:1時58分
投稿者:よしとも
AddClips 経由でソーシャルブックマークに登録

 ひろまささんの連載記事『PHP で遊ぼう』の第6回は if と変数。この記事では並べ替え、いわゆるソートのアルゴリズムについて書かれています。

 ソートについて習ったのは大学のときです。サンプルコードは Pascal でした。懐かしさを感じるくらい前の話。3つの数字のソートプログラムを募集とのことでしたので、懐かしついでにやってみました。

[php]


< ?php
$left = 8;
$center = 2;
$right = 4;

// 並べ替えの処理;
echo "start: $left $center $right
\n”;

if ( $left > $center )
{
$temp = $center;
$center = $left;
$left = $temp;
}
echo “1st: $left $center $right
\n”;

if ( $center > $right )
{
$temp = $right;
$right = $center;
$center = $temp;
}
echo “2nd: $left $center $right
\n”;

if ( $left > $center )
{
$temp = $center;
$center = $left;
$left = $temp;
}
echo “3rd: $left $center $right
\n”;
?>

左が < ?php echo $left; ?> で、真ん中が < ?php echo $center; ?> で、右が < ?php echo $right; ?> です。



[/php]

 ループを使うのが普通ですが、ここはあえて使わない方向で挑んで見ました。長ったらしいコードになってしまっていますが、これはいわゆるバブルソートですね。隣同士を比較して入れ替えていくというやつです。N個の場合の比較回数は N(N-1)/2 で、3(3-1)/2 = 6/2 = 3。なので3回分の if を書いています。

コメントはまだありません »

コメントはまだありません。

この投稿へのコメントの RSS フィード。 TrackBack URI

コメントする

You must be logged in to post a comment.

HTML convert time: 0.065 sec. Powered by