Странные результаты теста сортировки ведра? - PullRequest
0 голосов
/ 08 ноября 2019

Результаты теста

Эта сортировка сегментов становится более эффективной, даже если в списке появляется все больше элементов. Я ищу ответ, чтобы указать мне правильное направление, чтобы понять, почему это происходит.

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, поэтомуЯ не уверен, что вопросы, не связанные с кодом, приемлемы.

Логический поток событий

  • Каждому тесту присваивается максимальный размер для заполнения массива.
  • Рандомизированные целые числа помещаются в каждый индекс, заполняя весь массив
  • Системное время сохраняется
  • Список сортируется
  • Системное время сравнивается
  • Результат отображается
...