美文网首页
js算法排序-桶排序

js算法排序-桶排序

作者: 小猪佩奇的王子 | 来源:发表于2019-10-31 11:47 被阅读0次
/**
 * 桶排序
 * 将一系列数据划分到固定数量的桶中,对每个桶进行排序,最后将桶连接
 * 需要知道列表中的最大值和最小值,确定桶的数量
 * 对每个桶的排序,可以用其他排序方法
 * @param {*} arr
 */
function bucketSort(arr) {
    var length = arr.length
    var num = 5
    var max = Math.max.apply(null, arr)
    var min = Math.min.apply(null, arr)
    var buckets = []

    var space = (max - min + 1) / num
    for (var i = 0; i < length; i++) {
        var index = Math.floor((arr[i] - min) / space)
        if (!buckets[index]) {
            buckets[index] = []
        }
        buckets[index].push(arr[i])
        //对桶中数据进行快速排序
        buckets[index] = quickSort(buckets[index])
    }

    var result = []
    for (var x = 0; x <= num; x++) {
        if (buckets[x]) {
            result = result.concat(buckets[x])
        }
    }

    console.log(result)
}

// bucketSort(arr)

相关文章

  • 线性排序

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

  • 浅谈排序算法

    排序算法有很多种,今天先谈谈一些简单的排序算法。包括桶排序、冒泡排序和快速排序算法。后期总结各种排序算法。 桶排序...

  • js算法排序-桶排序

  • 排序算法(十一)桶排序

    排序算法(十一)桶排序   桶排序(Bucket sort)是计数排序改进版,同样属于非比较排序,该算法的基本思想...

  • 排序算法三(桶,计数,基数)

    桶排序,计数排序,基数排序算法的时间复杂度都是线性的,所以把这类排序算法叫作线性排序。 桶排序 概念:将要排序的数...

  • (转)排序算法

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

  • noip普及组3:排序算法

    排序算法 ①冒泡排序:O() ②插入排序:O() ③选择排序:O() ④桶排序 ⑤sort排序

  • 排序算法概述

    十大排序算法:冒泡排序,选择排序,插入排序,归并排序,堆排序,快速排序、希尔排序、计数排序,基数排序,桶排序 算法...

  • 十大排序算法

    算法说明 十大排序算法分别是:冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、计数排序、桶排序...

  • 桶排序与哈希桶排序

    一.桶排序 算法原理 桶排序 (箱排序)的原理是将待排序序列分到有限数量的桶里面,然后对每个桶再分别排序(可以使用...

网友评论

      本文标题:js算法排序-桶排序

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