美文网首页
js排序算法-计数排序

js排序算法-计数排序

作者: 小猪佩奇的王子 | 来源:发表于2019-10-31 11:41 被阅读0次
/**
 * 计数排序
 * 分配一个临时数组,长度比待排序列表中最大值大1
 * 遍历待排序数组,用元素作为临时数组的下标,并计数
 * 最后遍历临时数组,按顺序取值即可
 * @param {*} arr
 */
function countSort(arr) {
    var max = Math.max.apply(null, arr)
    var bucket = new Array(max + 1)
    var length = arr.length
    var bucketLen = max + 1
    var sortedIndex = 0

    for (var i = 0; i < length; i++) {
        if (!bucket[arr[i]]) {
            bucket[arr[i]] = 0
        }
        bucket[arr[i]]++
    }

    for (var j = 0; j < bucketLen; j++) {
        for (var x = 0; x < bucket[j]; x++) {
            if (bucket[j] > 0) {
                arr[sortedIndex++] = j
            }
        }
    }

    console.log(arr)
}

相关文章

  • 线性排序

    桶排序、计数排序、基数排序 一、线性排序算法介绍 1.线性排序算法包括桶排序、计数排序、基数排序。2.线性排序算法...

  • 算法and数据结构

    算法 冒泡排序 选择排序 计数排序

  • 排序算法-8---计数排序

    # 排序算法-8---计数排序 概念 计数排序(Counting sort)是一种稳定的线性时间排序算法。该算法于...

  • js排序算法-计数排序

  • 08-计数排序(Counting Sort)

    计数排序(Counting Sort) 本节内容,继续介绍排序算法,在本节内容之前,介绍过7种排序算法,那计数排序...

  • 排序算法

    常见排序算法 本文涉及的算法有:冒泡排序选择排序计数排序 冒泡排序 伪代码 流程图 选择排序 伪代码 流程图 计数...

  • (转)排序算法

    排序算法点这里 数据结构与算法——计数排序、桶排序、基数排序

  • LeetCode大全

    1.常见排序算法: 常见的排序算法:冒泡排序、选择排序、插入排序、归并排序、快速排序、希尔排序、堆排序、计数排序、...

  • 算法入门——计数排序、桶排序、基数排序

    上篇文章我们学习了算法入门——归并排序、希尔排序,这篇文章我们学习算法入门——计数排序、桶排序、基数排序。 计数排...

  • 面试算法知识梳理(12) - 二叉树算法第二部分

    面试算法代码知识梳理系列 面试算法知识梳理(1) - 排序算法 插入排序 希尔排序 选择排序 冒泡排序 计数排序 ...

网友评论

      本文标题:js排序算法-计数排序

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