国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 邏輯算法 > 正文

php計(jì)數(shù)排序算法的實(shí)現(xiàn)(代碼示例)

2020-03-22 18:00:32
字體:
供稿:網(wǎng)友
計(jì)數(shù)排序(Counting sort)是一種根據(jù)小整數(shù)鍵對一組對象排序的算法;也就是說,它是一個(gè)整數(shù)排序算法。它通過計(jì)算具有不同鍵值的對象的數(shù)量,并對這些數(shù)量使用算術(shù)來確定輸出序列中每個(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 來將A中的元素排到正確的位置。

通常計(jì)數(shù)排序算法的實(shí)現(xiàn)步驟思路是:

1.找出待排序的數(shù)組中最大和最小的元素;

2.統(tǒng)計(jì)數(shù)組中每個(gè)值為i的元素出現(xiàn)的次數(shù),存入數(shù)組C的第i項(xiàng);

3.對所有的計(jì)數(shù)累加(從C中的第一個(gè)元素開始,每一項(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)代碼示例如下:

 ?phpfunction 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;

輸出:

原始數(shù)組 : 3, 0, 2, 5, -1, 4, 1 排序后數(shù)組 :-1, 0, 1, 2, 3, 4, 5

相關(guān)推薦:《PHP教程》

本篇文章就是關(guān)于php計(jì)數(shù)排序算法的實(shí)現(xiàn)方法介紹,希望對需要的朋友有所幫助!

以上就是php計(jì)數(shù)排序算法的實(shí)現(xiàn)(代碼示例)的詳細(xì)內(nèi)容,PHP教程

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 揭东县| 新民市| 晋中市| 搜索| 分宜县| 隆子县| 修武县| 伊春市| 河东区| 信宜市| 武宣县| 江北区| 壤塘县| 施秉县| 汉中市| 平昌县| 南城县| 绥棱县| 哈巴河县| 金坛市| 绥芬河市| 台州市| 昭通市| 古丈县| 赞皇县| 南宁市| 和田县| 密云县| 越西县| 若尔盖县| 永胜县| 潮安县| 九江县| 康保县| 永宁县| 萍乡市| 平原县| 织金县| 吴忠市| 黄平县| 永城市|