计数排序,统计每个数出现的次数
<?php
$a = array(2,13,20,7,5,2,6,5,8,7,6,6,5,5,4,6,8,3);
function countSort($a) {
$len = count($a);
$t = $arr = array();
for($i = 0; $i < $len; $i++) {
if(isset($t[$a[$i]])){
$t[$a[$i]]++;
} else {
$t[$a[$i]] = 1;
}
}
$max = max($a);
$min = min($a);
for($i = $min; $i <= $max; $i++) {
if(isset($t[$i])){
for($j = 0; $j < $t[$i]; $j++){
array_push($arr, $i);
}
}
}
return $arr;
}
print_r(countSort($a));