本篇文章給大家分享的是有關(guān)如何在php項目中實現(xiàn)一個計數(shù)排序算法,小編覺得挺實用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

計數(shù)排序只適合使用在鍵的變化不大于元素總數(shù)的情況下。它通常用作另一種排序算法(基數(shù)排序)的子程序,這樣可以有效地處理更大的鍵。
總之,計數(shù)排序是一種穩(wěn)定的線性時間排序算法。計數(shù)排序使用一個額外的數(shù)組C ,其中第i個元素是待排序數(shù)組 A中值等于 i的元素的個數(shù)。然后根據(jù)數(shù)組C 來將A中的元素排到正確的位置。
通常計數(shù)排序算法的實現(xiàn)步驟思路是:
1.找出待排序的數(shù)組中較大和最小的元素;
2.統(tǒng)計數(shù)組中每個值為i的元素出現(xiàn)的次數(shù),存入數(shù)組C的第i項;
3.對所有的計數(shù)累加(從C中的第一個元素開始,每一項和前一項相加);
4.反向填充目標數(shù)組:將每個元素i放在新數(shù)組的第C[i]項,每放一個元素就將C[i]減去1。
PHP計數(shù)排序算法的實現(xiàn)代碼示例如下:
<?php
function counting_sort($my_array, $min, $max)
{
$count = array();
for($i = $min; $i <= $max; $i++)
{
$count[$i] = 0;
}
foreach($my_array as $number)
{
$count[$number]++;
}
$z = 0;
for($i = $min; $i <= $max; $i++) {
while( $count[$i]-- > 0 ) {
$my_array[$z++] = $i;
}
}
return $my_array;
}
$test_array = array(3, 0, 2, 5, -1, 4, 1);
echo "原始數(shù)組 :\n";
echo implode(', ',$test_array );
echo "\n排序后數(shù)組\n:";
echo implode(', ',counting_sort($test_array, -1, 5)). PHP_EOL;
網(wǎng)站標題:如何在php項目中實現(xiàn)一個計數(shù)排序算法-創(chuàng)新互聯(lián)
網(wǎng)頁鏈接:http://www.chinadenli.net/article24/iejce.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、網(wǎng)站導(dǎo)航、標簽優(yōu)化、搜索引擎優(yōu)化、品牌網(wǎng)站制作、微信公眾號
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容