js 計數排序的實現(xiàn)示例(升級版)
更新時間:2020年01月12日 10:20:10 作者:小賀大鬧it
這篇文章主要介紹了js 計數排序的實現(xiàn)示例(升級版),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
原版計數排序,桶的容積需要一個可以包含最小值到最大值所有可能出現(xiàn)的數字。這里我們可以將桶換成對象,利用對象的自動排序與不能出現(xiàn)相同屬性名的鍵值對這兩個特點,不需要一個有序容積的桶,隨意新增鍵值對即可。代碼如下
var ary=[23,14,12,24,53,31,53,35,46,12,62,23]
function countSort(arr){
let obj={};
//遍歷原數組,給對象新增鍵值對,如果已經存在就對應的屬性值++,如果不存在則新增鍵值對
for(let i=0;i<arr.length;i++){
if(!obj[arr[i]]){
obj[arr[i]]=1;
}else{
obj[arr[i]]++;
}
}
let index=0;
//遍歷對象屬性名,按順序放回覆蓋原數組
for(let key in obj){
while(obj[key]>0){
arr[index]=Number(key);
obj[key]--;
index++
}
}
return arr;
}
console.log(countSort(ary));
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
JavaScript中click和onclick本質區(qū)別與用法分析
這篇文章主要介紹了JavaScript中click和onclick本質區(qū)別與用法,結合實例形式分析了JavaScript中click和onclick的具體概念、功能、使用場景及相關操作技巧,需要的朋友可以參考下2018-06-06
JS實現(xiàn)PC手機端和嵌入式滑動拼圖驗證碼三種效果
這篇文章主要介紹了JS實現(xiàn)PC手機端和嵌入式滑動拼圖驗證碼三種效果,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-02-02
JavaScript中async與await實現(xiàn)原理與細節(jié)
這篇文章主要介紹了JavaScript中async與await實現(xiàn)原理與細節(jié),文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-09-09
使用javascript實現(xiàn)Iframe自適應高度
這篇文章主要介紹了使用javascript實現(xiàn)Iframe自適應高度,需要的朋友可以參考下2014-12-12

