function swap(&$a, &$b) {
$tmp = $a;
$a = $b;
$b = $tmp;
}
function ssort(&$arr) {
$start = 0;
$end = sizeof($arr) - 1;
$mid = 0;
while ($mid <= $end) {
switch ($arr[$mid]) {
case 0:
swap($arr[$start++], $arr[$mid++]);
break;
case 1:
$mid++;
break;
case 2:
swap($arr[$mid], $arr[$end--]);
break;
}
}
}
$arr = array(2, 1, 0, 0, 1, 2, 2, 1, 1, 2);
ssort($arr);
for ($i = 0; $i < sizeof($arr); $i++) {
echo $arr[$i] . " ";
}
/*
run:
0 0 1 1 1 1 2 2 2 2
*/