php如何實(shí)現(xiàn)計(jì)數(shù)排序算法?針對(duì)這個(gè)問(wèn)題,今天小編總結(jié)這篇有關(guān)計(jì)數(shù)排序算法的文章,希望幫助更多想學(xué)習(xí)php的同學(xué)找到更加簡(jiǎn)單易行的辦法。
創(chuàng)新互聯(lián)公司專注于獻(xiàn)縣企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站設(shè)計(jì),商城系統(tǒng)網(wǎng)站開(kāi)發(fā)。獻(xiàn)縣網(wǎng)站建設(shè)公司,為獻(xiàn)縣等地區(qū)提供建站服務(wù)。全流程按需求定制網(wǎng)站,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)計(jì)數(shù)排序(Counting sort)是一種根據(jù)小整數(shù)鍵對(duì)一組對(duì)象排序的算法;也就是說(shuō),它是一個(gè)整數(shù)排序算法。它通過(guò)計(jì)算具有不同鍵值的對(duì)象的數(shù)量,并對(duì)這些數(shù)量使用算術(shù)來(lái)確定輸出序列中每個(gè)鍵值的位置。
計(jì)數(shù)排序只適合使用在鍵的變化不大于元素總數(shù)的情況下。它通常用作另一種排序算法(基數(shù)排序)的子程序,這樣可以有效地處理更大的鍵。
總之,計(jì)數(shù)排序是一種穩(wěn)定的線性時(shí)間排序算法。計(jì)數(shù)排序使用一個(gè)額外的數(shù)組C ,其中第i個(gè)元素是待排序數(shù)組 A中值等于 i的元素的個(gè)數(shù)。然后根據(jù)數(shù)組C 來(lái)將A中的元素排到正確的位置。
通常計(jì)數(shù)排序算法的實(shí)現(xiàn)步驟思路是:
1.找出待排序的數(shù)組中大和最小的元素;
2.統(tǒng)計(jì)數(shù)組中每個(gè)值為i的元素出現(xiàn)的次數(shù),存入數(shù)組C的第i項(xiàng);
3.對(duì)所有的計(jì)數(shù)累加(從C中的第一個(gè)元素開(kāi)始,每一項(xiàng)和前一項(xiàng)相加);
4.反向填充目標(biāo)數(shù)組:將每個(gè)元素i放在新數(shù)組的第C[i]項(xiàng),每放一個(gè)元素就將C[i]減去1。
PHP計(jì)數(shù)排序算法的實(shí)現(xiàn)代碼示例如下:
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;
輸出:
原始數(shù)組 : 3, 0, 2, 5, -1, 4, 1 排序后數(shù)組 :-1, 0, 1, 2, 3, 4, 5
看完上述內(nèi)容,你們掌握php實(shí)現(xiàn)計(jì)數(shù)排序算法的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!