• JavaScript实现计数排序


    计数排序:

    1. 适合非负整数排序
    2. 以原数组的元素的数值为辅助数组的索引
    3. 以原数组元素的出现数量为辅助数组对应的值
    4. 辅助数组构建完成后,根据索引以及对应的值(数量)给原数组重新赋值

    代码实现:

            let arr = [9,8,7,6,5,4,3,2,1,0];
            
            function countingSort(arr){
                if(arr.length < 2) return arr;
                
                let max = 0;
                for(let i = 0; i < arr.length; i ++){
                    if(arr[i] > max) max = arr[i];
                }
                
                console.log(max);
                let counts = new Array(max + 1);
                arr.forEach(item => {
                    if(!counts[item]) counts[item] = 0;
                    counts[item] ++;
                 });
                
                let index = 0;
                for(let j = 0; j < counts.length; j ++){
                    if(counts[j]){
                        for(let k = 0; k < counts[j]; k ++){
                            arr[index++] = j;
                        }
                    }
                }
                // return arr;
            }
            
            countingSort(arr);
            console.log(arr);

  • 相关阅读:
    小程序中使用echarts地图
    C4D坐标与渲染
    SSM在线餐饮管理系统
    pytest实战练习
    GSAman | 我「玩着游戏」就把「科研做了」
    java 注解信息说明
    网络编程
    CUDA中Occupancy相关知识
    VsCode 自动生成文件头部注释和函数注释
    【ASM】字节码操作 转换已有的类 优化 删除复杂的转换 删除加0操作
  • 原文地址:https://blog.csdn.net/SignalFire/article/details/125412586