算法详解:
既然排序名字是计数排序,那么肯定要有统计数据这个过程。
下面先看一个简单的例子,咱们先用一种统计数据的方法对 3,2,2,5,4,0,5,4,5,1 这十个数排序。
经过观察发现,上面的十个数中,0出现了一次,1出现了一次,2出现了两次,3出现了一次,4出现了两次,5出现三次。
我们就可以用一个数组来存这些次数(数组下标代表存数的值,数组的值代表存了几次),
即count[0]=1,count[1]=1,count[2]=2,count[3]=1,count[4]=2,count[5]=3
基本原理:
首先将原始数组(a)的数据转换成临时数组(arra)的序号,之后再将临时数组(arra)的序号进行排序,最后将序号输出到原始数组中去。
代码:
<script type="text/javascript">
var a=[2,3,36,333,525,55,75,32,35]
var arra=[ ]
for(var i=0;i<a.length;i++){
if(arra[a[i]]!=undefined){
arra[a[i]]++
}
else{
arra[a[i]]=1
}
}
a.length=0
for(var j=0;j<arra.length;j++){
if(arra[j]==undefined) continue
a[a.length]=j
}
console.log(a)
</script>
这是我所学到的,所以我要分享给你们,希望可以帮助到你们。
以上就是我的分享,新手上道,请多多指教(大神勿喷)。