読者です 読者をやめる 読者になる 読者になる

PHPでソート

今日の新卒コードレビューのお題。
文字列の数字を昇順にソートする。

$str = '20110801';

echo bubble_sort($str) . "\n";
echo quick_sort($str) . "\n";

function bubble_sort($str) {
    $n = strlen($str) - 1;

    for ($i = 0;$i < $n;$i++) {
        for ($j = $n;$j > $i;$j--) {
            if ($str[$j - 1] > $str[$j]) {
                list($str[$j - 1], $str[$j]) = array($str[$j], $str[$j - 1]);
            }
        }
    }

    return $str;
}

function quick_sort($str) {
    if (strlen($str) < 1) return;

    $pivot = $str[0];
    $left  = '';
    $right = '';

    for ($i = 1;$i < strlen($str);$i++) {
        if ($pivot >= $str[$i]) {
            $left  .= $str[$i];
        }
        if ($pivot < $str[$i]) {
            $right .= $str[$i];
        }
    }

    $left  = quick_sort($left);
    $right = quick_sort($right);

    return $left . $pivot . $right;
}