桶排序

作者: 涅槃快乐是金 | 来源:发表于2018-01-13 08:59 被阅读0次

    /**
     * 桶排序(只支持整数)
     * max:数组的最大数值,必须大于0, 整数
     * sortArry:排序数组    数组
     * type:排序方式,默认1:从小到大,0:从大到小
     * 返回排序后数组,异常情况返回false
     **/
    function bucketsort(max,sortArray,type = 1){
        if(max <=0 || !sortArray){
            return false;
        }else{
            let bucketArray = new Array(max);
            let tempArray = [];
            sortArray.forEach((item,index)=>{
                bucketArray[item] = (bucketArray[item]?bucketArray[item]:0)+1;
            })
            bucketArray.forEach((item,index)=>{
                if(item && item >0){
                    for(let i=0;i<item;i++){
                        if(type == 1){//从小到大
                            tempArray.push(index)
                        }else{//从大到小
                            tempArray.unshift(index)
                        }
                    }
                }
            })
            return tempArray
        }
    }
    

    相关文章

      网友评论

          本文标题:桶排序

          本文链接:https://www.haomeiwen.com/subject/iczqoxtx.html