首页 > 解决方案 > 奇怪的桶排序基准结果?

问题描述

基准测试结果

即使列表中的元素越来越多,这种桶排序也会变得更加高效。我正在寻找一个答案,为我指明正确的方向,以了解为什么会发生这种情况。

Test:[1]  | Average Bench Time:[11ms]  | Elements Sorted:[1 000 000]
Test:[2]  | Average Bench Time:[11ms]  | Elements Sorted:[2 000 000]
Test:[3]  | Average Bench Time:[4ms]   | Elements Sorted:[3 000 000]
Test:[4]  | Average Bench Time:[7ms]   | Elements Sorted:[4 000 000]
Test:[5]  | Average Bench Time:[7ms]   | Elements Sorted:[5 000 000]
Test:[6]  | Average Bench Time:[10ms]  | Elements Sorted:[6 000 000]
Test:[7]  | Average Bench Time:[12ms]  | Elements Sorted:[7 000 000]
Test:[8]  | Average Bench Time:[12ms]  | Elements Sorted:[8 000 000]
Test:[9]  | Average Bench Time:[15ms]  | Elements Sorted:[9 000 000]
Test:[10] | Average Bench Time:[17ms]  | Elements Sorted:[10 000 000]

这里是排序代码

 public void Sort() {
        int[] bucket = new int[getMax() + 1];

        for (int i = 0; i < size; i++)
            bucket[data[i]] = bucket[data[i]] + 1;

        int index = 0;
        for (int i = 0; i < bucket.length; i++) {
            for (int k = 0; k < bucket[i]; k++) {
                data[index] = i;
                index++;
            }
        }
    }

我是 stackoverflow 的新手,所以我不确定非代码相关的问题是否可以接受。

事件的逻辑流程

标签: javasortingbenchmarking

解决方案


推荐阅读