2
Может ли кто-нибудь показать мне, как обрабатывать дубликаты в QuickSort с моей функцией здесь?Быстрый поиск. Обработка дубликатов
private static int[] quickSort(int[] input, int left, int right) {
int mid = (left + right)/2;
int i = left;
int j = right;
if((right - left) < 1) {
return new int[]{};
}
while(i <= j) {
while((input[i] < input[mid])) {
i++;
}
while((input[j] > input[mid])) {
j--;
}
if(i <= j) {
int temp = input[i];
input[i] = input[j];
input[j] = temp;
i++;
j--;
}
}
if(j > left) {
input = quickSort(input, left, j);
}
if(i < right) {
input = quickSort(input, i, right);
}
return input;
}
Можете ли вы дать простой пример того, что ваш код не обрабатывает дубликаты и что вы хотели бы это сделать вместо этого? например если я попытаюсь сортировать '1, 1, 0, 3', это исключает это исключение. –