JavaScript Switc计数排序

算法详解

既然排序名字是计数排序,那么肯定要有统计数据这个过程。

下面先看一个简单的例子,咱们先用一种统计数据的方法对 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>

这是我所学到的,所以我要分享给你们,希望可以帮助到你们。

以上就是我的分享,新手上道,请多多指教大神勿喷

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值