Я пишу программу быстрой сортировки. Часть quicksort включает использование insertionsort, но только сортирует определенный диапазон элементов, поскольку quicksort обрабатывает остальные. Я пытаюсь подражать метод, предусмотренный в моем учебнике, который используетИспользование сортировки вставки для сортировки только части массива
public static void insertionSort(int a[], int left, int right)
Но я изо всех сил, чтобы выяснить, как левая и правая используются. Вот код без использования сортировки вставок параметры слева и справа:
public static void insertionSort(int a[], int left, int right) {
int j;
for (int p = 1; p < a.length; p++) {
int tmp = a[p];
for(j = p; j > 0 && tmp < a[j - 1]; j--) {
a[j] = a[j-1];
}
a[j] = tmp;
}
}
Если бы я добавить левые и правые параметры, чтобы помочь сортировать только часть массива, где бы они применяются?
Спасибо за помощь.
Я бы объяснил, включены ли исключающие или исключительные права слева и справа и объясняют, являются ли слева и справа индексы на основе нуля или один на основе. – Rainbolt
Спасибо за помощь. Я попробовал это, и была одна небольшая аномалия, с которой я столкнулся, и это не совсем правильно. Вместо p
@ Rainbolt, что хорошо прояснить. Джон, да, это то, что радуга просила меня уточнить. Рад, что ты это понял. – Ryan