最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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ù)排序的評論 (共 條)

分享到微博請遵守國家法律
慈利县| 攀枝花市| 巧家县| 马尔康县| 六盘水市| 阳信县| 福清市| 宁强县| 通辽市| 余庆县| 祥云县| 扎兰屯市| 肥乡县| 满洲里市| 道真| 精河县| 宁明县| 三门县| 大足县| 禄丰县| 同江市| 平江县| 安陆市| 阿拉善右旗| 时尚| 遂宁市| 朝阳县| 灯塔市| 临漳县| 梁山县| 安乡县| 榆社县| 马关县| 全州县| 寻乌县| 太湖县| 宿松县| 石柱| 宣化县| 金门县| 山丹县|