Количество выполнений приводит к нулю в других отсортированных наборах данных

#java #algorithm #sorting #execution

Вопрос:

Добрый день!

В настоящее время я работаю над программой, которая подсчитывает количество выполнений ряда наборов данных с различными списками расположения (по возрастанию, по убыванию, случайным образом) с помощью 3 алгоритмов сортировки, таких как примеры результатов ниже

Я уже протестировал несколько наборов данных и получаю нулевой результат по некоторым алгоритмам сортировки. Вот примерный результат:

введите описание изображения здесь

Как вы можете видеть, сортировка вставки отлично работает с набором данных 10 000, но обнуляется для набора данных 50 000. Нормально ли, что результат равен нулю?

Вот пример алгоритма сортировки вставки:

 public long insertionSort(ArrayList<Integer> list) {
    counter = 0;
    int n = list.size();
    for (int j = 1; j < n; j  ) {
        int key = list.get(j);
        int i = j-1;
        while ( (i > -1) amp;amp; ( list.get(i) > key ) ) {
            counter  ;
            list.set(i   1, list.get(i));
            i--;
        }
        list.set(i   1, key);
    }
    return counter;
}
 

Мои ограниченные знания подсказывают мне, что, пока у меня есть набор данных, количество выполнений не должно быть равно нулю, верно? Я пытаюсь определить, в чем заключается проблема в коде. Кроме того, сортировка этих данных занимает много времени. У меня есть миллион наборов данных, на сортировку которых ушло около 5-6 часов, и 500 000 наборов данных, которые также заняли около 2-3 часов. Если вы можете помочь мне с этим. Я не знаю, как избавиться от нулевого результата.