美文网首页
10-桶排序(Bucket Sort)

10-桶排序(Bucket Sort)

作者: ducktobey | 来源:发表于2019-12-06 23:23 被阅读0次

桶排序(Bucket Sort)

前面介绍了9种不同的排序算法,那现在就直接来看以下桶排序的执行流程

  1. 创建一定数量的桶(比如用数组,链表作为桶)
  2. 按照一定的规则(不同类型的数据,规则不同),将序列中的元素均匀分配到对应的桶
  3. 分别对每个桶进行单独排序
  4. 将所有非空桶的元素合并成有序序列

例如现在需要对下图中的小数进行排序

由于现在有8个元素,就可以创建8个桶,每个桶都是一个数组,然后利用元素值 * 待排序元素数量 得到每一个元素的索引

然后再对每个桶进行单独排序,最终每个桶排序后的结果为

.png

然后再将非空桶中的元素进行合并,最终合并后的结果为

所以,基于小数的桶排序算法如下

protected void sort() {
    List<Double>[] buckets = new List[array.length];
    for (int i = 0; i < array.length; i++) {
        int bucketIndex = (int)(array[i] * array.length);
        List<Double> bucket = buckets[bucketIndex];
        if (bucket == null) {
            bucket = new LinkedList<>();
            buckets[bucketIndex] = bucket;
        }
        bucket.add(array[i]);
    }

    int index = 0;
    for (int i = 0; i < buckets.length; i++) {
        if (buckets[i] == null) continue;
        buckets[i].sort(null);
        for (Double d :
                buckets[i]) {
            array[index++] = d;
        }
    }
    System.out.println(array);
}

需要注意,不同的数据类型,桶排序的实现是不一样的,所以无法给出统一的算法。可以作为一种思路来进行了解。

demo下载地址

完!

相关文章

  • 排序(2)

    线性排序:Bucket sort,Counting sort,Radix sort 桶排序 数据能划分为m个桶,桶...

  • iOS 计数排序、基数排序、桶排序

      计数排序(Counting Sort)、基数排序(Radix Sort)、桶排序(Bucket Sort)适合...

  • 10-桶排序(Bucket Sort)

    桶排序(Bucket Sort) 前面介绍了9种不同的排序算法,那现在就直接来看以下桶排序的执行流程 创建一定数量...

  • 13|桶排序

    桶排序( Bucket sort )首先,我们来看桶排序。桶排序,顾名思义,会用到 “ 桶 ” ,核心思想是将要排...

  • 桶排序

    桶排序(BucketSort) 桶排序(Bucket sort)或所谓的箱排序,是一个排序算法,工作的原理是将数组...

  • 数组-桶排序

    采用桶排序方式对数组进行排序 桶排序百科:桶排序(Bucket Sort),或者所谓的箱排序是一种非比较排序.工作...

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

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

  • 排序算法(3)- 桶排序、计数排序、基数排序

    桶排序(Bucket sort) 将要排序的数据分到几个有序的桶里,每个桶里面再单独进行排序,最后把每个桶里的数据...

  • 桶排序(Bucket Sort)

    引用:CSDN算法之美 海量数据 一年的全国高考考生人数为500 万,分数使用标准分,最低100 ,最高900 ,...

  • 桶排序 bucket sort

    桶排序 时间复杂度:线性介,平均、最好为O(n+k),最坏为0(n^2) 空间复杂度:O(n+k) 稳定性:稳定性...

网友评论

      本文标题:10-桶排序(Bucket Sort)

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