js 計數(shù)排序的實現(xiàn)示例(升級版)
原版計數(shù)排序,桶的容積需要一個可以包含最小值到最大值所有可能出現(xiàn)的數(shù)字。這里我們可以將桶換成對象,利用對象的自動排序與不能出現(xiàn)相同屬性名的鍵值對這兩個特點,不需要一個有序容積的桶,隨意新增鍵值對即可。代碼如下
var ary=[23,14,12,24,53,31,53,35,46,12,62,23]
function countSort(arr){ let obj={}; //遍歷原數(shù)組,給對象新增鍵值對,如果已經(jī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)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
JavaScript 在網(wǎng)頁上單擊鼠標的地方顯示層及關(guān)閉層
在網(wǎng)頁上單擊鼠標的地方顯示層,供用戶選擇地點,同時把用戶選擇的地點顯示在文本框中。主要是控制層的顯示、隱藏,感興趣的朋友可以參考下2012-12-12JavaScript中click和onclick本質(zhì)區(qū)別與用法分析
這篇文章主要介紹了JavaScript中click和onclick本質(zhì)區(qū)別與用法,結(jié)合實例形式分析了JavaScript中click和onclick的具體概念、功能、使用場景及相關(guān)操作技巧,需要的朋友可以參考下2018-06-06JS實現(xiàn)PC手機端和嵌入式滑動拼圖驗證碼三種效果
這篇文章主要介紹了JS實現(xiàn)PC手機端和嵌入式滑動拼圖驗證碼三種效果,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-02-02JavaScript中async與await實現(xiàn)原理與細節(jié)
這篇文章主要介紹了JavaScript中async與await實現(xiàn)原理與細節(jié),文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-09-09使用javascript實現(xiàn)Iframe自適應高度
這篇文章主要介紹了使用javascript實現(xiàn)Iframe自適應高度,需要的朋友可以參考下2014-12-12