排序原理:首先找到陣列中的最大值,從0開始每次加1(0,1,2,3,…,max),然后判斷陣列中的數是否等于它,等于就丟到新陣列,完成排序
此排序運用了一個取陣列最大值的方法,如下
var max = Math.max.apply(null,arr)
function zichuang(arr){ //引數是任意一個陣列
var max = Math.max.apply(null,arr); // 取陣列最大值 別疑惑 這一步很簡單(Math.max.apply()取陣列最大值的方法)
// console.log(max)
var newArr = []; // 創建一個新陣列
for(var i = 0; i <= max;i++){ // 第一層回圈是從0開始到最大值max結束
for(var j = 0;j < arr.length;j++){ // 第二層是遍歷老陣列
if(arr[j] == i){
newArr.push(arr[j]) // 如果陣列中有一個數等于第一層回圈中的數 就往新陣列中添加
}
}
}
return newArr
}
console.log(zichuang([4,2,1,6,3,8])) // 最后輸出[1,2,3,4,6,8]
此排序缺點:回圈次數過多,和計數排序的回圈次數一樣,就是如果陣列是[1,1000]它還是會回圈1000次,因為它至少會回圈陣列最大值的值得次數,
此排序優點:可以同時完成排序,去重,計數,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/263846.html
標籤:其他
上一篇:前端面試:看了很多的前端面試真題,現在你知道怎么準備面試了嗎?
下一篇:Js大佬求助!
