Я написал quicksort для arraylist, и, поскольку он стоит, логика кажется звуковой. Проблема, которую я испытываю, заключается в замене элементов. То, что, кажется, происходит, а не заменяет элементы, метод заменяет существующий элемент на тот, который должен быть заменен. пример запускается со списком, например [happy, apples, eat, food], а после сортировки он выходит [счастливый, счастливый, счастливый, еда]. Я уверен, что моя ошибка проста, но я слишком долго смотрел на нее и нуждался в новых глазах. Вот мой код. Заранее спасибо!quicksort с использованием arraylist java
String pivot = list.get(0); // Choose the first element as the pivot
int low = first + 1; // Index for forward search
int high = last; // Index for backward search
while (high > low)
{ // Search forward from left
while (low <= high && list.get(low).compareTo(pivot) <= 0)
{
low++;
}
// Search backward from right
while (low <= high && list.get(high).compareTo(pivot) > 0)
{
high--;
}
// Swap two elements in the list
if (high > low)
{
String temp = list.get(high);
list.set(high,list.get(low));
list.set(low,temp);
}
}
while (high > first && list.get(high).compareTo(pivot) <= 0)
{
high--;
}
// Swap pivot with list[high]
if (list.get(high).compareTo(pivot) < 0)
{
list.set(first, list.get(high));
list.set(high,pivot);
return high;
}
else
{
return first;
}
}
'String pivot = list.get (0); // Выберите первый элемент как свод' <-, который должен быть 'list.get (first)'. –
Спасибо, я поймал, что после того, как я разместил код, однако он не делает ничего, чтобы исправить проблему, которая у меня есть. –