js 計(jì)數(shù)排序的實(shí)現(xiàn)示例(升級版)
更新時(shí)間:2020年01月12日 10:20:10 作者:小賀大鬧it
這篇文章主要介紹了js 計(jì)數(shù)排序的實(shí)現(xiàn)示例(升級版),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
原版計(jì)數(shù)排序,桶的容積需要一個(gè)可以包含最小值到最大值所有可能出現(xiàn)的數(shù)字。這里我們可以將桶換成對象,利用對象的自動排序與不能出現(xiàn)相同屬性名的鍵值對這兩個(gè)特點(diǎn),不需要一個(gè)有序容積的桶,隨意新增鍵值對即可。代碼如下
var ary=[23,14,12,24,53,31,53,35,46,12,62,23]
function countSort(arr){
let obj={};
//遍歷原數(shù)組,給對象新增鍵值對,如果已經(jīng)存在就對應(yīng)的屬性值++,如果不存在則新增鍵值對
for(let i=0;i<arr.length;i++){
if(!obj[arr[i]]){
obj[arr[i]]=1;
}else{
obj[arr[i]]++;
}
}
let index=0;
//遍歷對象屬性名,按順序放回覆蓋原數(shù)組
for(let key in obj){
while(obj[key]>0){
arr[index]=Number(key);
obj[key]--;
index++
}
}
return arr;
}
console.log(countSort(ary));
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
JavaScript封裝的常用工具類庫bee.js用法詳解【經(jīng)典類庫】
這篇文章主要介紹了JavaScript封裝的常用工具類庫bee.js用法,結(jié)合實(shí)例形式詳細(xì)分析了經(jīng)典類庫bee.js常見的手機(jī)、身份證、郵箱校驗(yàn),以及字符串操作、四則運(yùn)算、正則驗(yàn)證等相關(guān)操作的封裝與使用技巧,需要的朋友可以參考下2018-09-09
JavaScript實(shí)現(xiàn)動態(tài)表單生成
這篇文章主要來和大家一起深入探討如何使用JavaScript實(shí)現(xiàn)一個(gè)動態(tài)表單生成器,文中的示例代碼講解詳細(xì),有需要的小伙伴可以參考一下2024-01-01

