数据结构-桶式排序 可刷新运行 刷新

有N个整数,预计要排序的数在0~M-1 之间,且是非负整数,可使用桶式排序。可可先求出最大最小值,在填充数组

代码:

//有N个整数,大小在0~M-1 之间。可使用桶式排序(数组的key排序)

$arr = [10,20,3,9,78,66,9];
function tongSort($arr,$m){
    $tong=[];
    $tong=array_pad($tong,$m,0);
    foreach ($arr as $v){
        $tong[$v]++;
    }
    $tong=array_filter($tong);
    $sort=[];
    foreach ($tong as $k=>$v){
        while ($v>0){
            array_push($sort,$k);
            $v--;
        }
    }
    return $sort;
}
//预计不会超过100
$sort=tongSort($arr,100);
print_r($sort);

输出:

Array
(
    [0] => 3
    [1] => 9
    [2] => 9
    [3] => 10
    [4] => 20
    [5] => 66
    [6] => 78
)
遇到问题?