/** * 計數排序: 桶排序的一種 */$arr = [5,69,4,32,14,8,74,95,23,56,41,5,31,63];// include 'data.php';$length = count($arr);$maxValue = $arr[0];// 找出數組中的最大值for ($i=1; $i < $length; $i++) { if ($arr[$i] > $maxValue) { $maxValue = $arr[$i]; }}/** * 定長數組, 鍵會自動排序, PHP數組是hash表的實現, * 如果這里用普通的數組, 鍵不會自動排序, 不存在的鍵也不會自動填充null */$frequency = new SplFixedArray($maxValue + 1);/** * 統計arr中, 值出現的頻次 */for ($i=0; $i < $length; $i++) { if(empty($frequency[$arr[$i]])) $frequency[$arr[$i]] = 0; $frequency[$arr[$i]] += 1;}// 清空$arr$arr = [];// 遍歷frequency, 如果其元素有值, 那么將鍵push到arr中for ($i=0; $i < count($frequency); $i++) { if (!empty($frequency[$i])) { for ($j=0; $j < $frequency[$i]; $j++) { $arr[] = $i; } }}print_r($arr);
相關文章推薦:
php中echo()函數的用法(附代碼)
Nginx如何來配置隱藏入口文件index.php(代碼)
以上就是PHP如何實現計數排序的代碼的詳細內容,更多請關注 其它相關文章!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答