算法 - 桶排序(简化版)

<?php
/**
 * 桶排序(简化版)
 * @param  int    $num       输入待排序的数字在什么数字范围.
 * @param  array  $data      待排序的数组
 * 
 * // 数字范围在10之内,个数不限。
 * eg: bucketSort(10, array(3, 7, 4, 6, 9, 1, 3, 5, 8, 2, 9));
 * 
 * @return string $sortResult 排序的结果
 */
function bucketSort($num, $data) {
    // 初始化“桶”
    for ($i=0; $i <= $num; $i++) { 
        $book[$i] = 0;
    }

    // 将对应的值,放入相应的桶中。
    $count = count($data);
    for ($i=0; $i <$count ; $i++) { 
        $book[$data[$i]]++;
    }

    // 输出“桶”中的值
    $sortResult = '';
    for ($i=0; $i <= $num; $i++) { 
        for ($j=0; $j <$book[$i] ; $j++) { 
            $sortResult .= $i;
        }
    }

    // 输出结果
    return $sortResult;
}

// 执行
echo bucketSort(10, array(3, 7, 4, 6, 9, 1, 3, 5, 8, 2, 9));

 

posted on 2016-07-24 14:38  ultrastrong  阅读(144)  评论(0编辑  收藏  举报