五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

計數(shù)排序

2023-08-24 13:56 作者:十三他很帥  | 我要投稿

計數(shù)排序是一種非比較排序算法,它根據(jù)元素的鍵值進(jìn)行排序。在計數(shù)排序中,不需要對元素進(jìn)行比較,而是統(tǒng)計每個元素出現(xiàn)的次數(shù),然后根據(jù)元素的順序重建排序的結(jié)果。

算法步驟

計數(shù)排序的算法步驟如下:

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

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

  3. 對所有的計數(shù)累加(從 C 中的第一個元素開始,每一項和前一項相加)。

  4. 反向填充目標(biāo)數(shù)組 B:將每個元素 i 放在新數(shù)組 B 中的第 C(i) 項,每放一個元素就將 C(i) 減去 1。

示例代碼

下面是一個使用 JavaScript 實現(xiàn)計數(shù)排序的示例代碼:

解釋和實例運行過程

  1. 數(shù)組 [5, 3, 8, 2, 1, 4] 中最小值為 1,最大值為 8。

  2. 創(chuàng)建一個長度為 max - min + 1 的計數(shù)數(shù)組 countArr,此時 countArr 的初始狀態(tài)為 [0, 0, 0, 0, 0, 0, 0, 0]。

  3. 統(tǒng)計每個元素出現(xiàn)的次數(shù),遍歷原始數(shù)組,將每個元素減去最小值作為索引,并將對應(yīng)位置的計數(shù)加一。統(tǒng)計結(jié)束后,countArr 的狀態(tài)為 [1, 1, 1, 1, 1, 0, 0, 1]。

  4. 累加計數(shù)數(shù)組,從第二個元素開始,每個元素的值等于前一個元素值加當(dāng)前元素值。累加結(jié)束后,countArr 的狀態(tài)為 [1, 2, 3, 4, 5, 5, 5, 6]

  5. 創(chuàng)建一個新數(shù)組 sortedArr,長度與原始數(shù)組相同。

  6. 反向遍歷原始數(shù)組,將每個元素在 countArr 中的值減一作為索引,并將對應(yīng)位置的元素放入 sortedArr。同時,將對應(yīng)位置的計數(shù)減一。最終得到排序后的數(shù)組 sortedArr。

以上是計數(shù)排序算法的實現(xiàn)過程,通過這種方法可以對任意類型的數(shù)組進(jìn)行排序。


計數(shù)排序的評論 (共 條)

分享到微博請遵守國家法律
正镶白旗| 德昌县| 固镇县| 金昌市| 绍兴县| 蒙阴县| 韶关市| 越西县| 龙陵县| 酒泉市| 华蓥市| 梓潼县| 宜宾县| 博湖县| 凤山市| 湟源县| 洛川县| 仁怀市| 锦屏县| 田阳县| 澄迈县| 西平县| 南康市| 盐城市| 克东县| 靖宇县| 满城县| 玉门市| 同仁县| 雷波县| 中江县| 海丰县| 岳西县| 崇文区| 册亨县| 石台县| 伊宁县| 日照市| 库伦旗| 米林县| 泰顺县|