#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 часов. Если вы можете помочь мне с этим. Я не знаю, как избавиться от нулевого результата.