五月天青色头像情侣网名,国产亚洲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ù)排序的評論 (共 條)

分享到微博請遵守國家法律
瑞金市| 潍坊市| 达孜县| 赤城县| 彰化市| 日照市| 巴彦县| 卓资县| 丽水市| 铜山县| 崇文区| 调兵山市| 台南县| 古交市| 溧阳市| 汪清县| 报价| 梁山县| 临清市| 沅江市| 名山县| 马关县| 上蔡县| 义马市| 微山县| 韶关市| 扶沟县| 三台县| 青神县| 增城市| 金湖县| 罗江县| 宁德市| 安多县| 梅州市| 奉化市| 博白县| 泉州市| 铜梁县| 鸡东县| 南昌县|