Итак, у меня есть arraylist, который я хочу, чтобы мне нужно сортировать с помощью алгоритма сортировки вставки для класса программирования. Я это и ArrayList, содержащие эти струны = (Andrew, Felip, Хуан, Камил, Jhon, William) и у меня есть этот Java код:Вставка сортировки алгоритма Java в arraylist String
public void insertionSort()
{
ArrayList<Reserve> array = giveReserves();
for(int i = 1 ; i < array.size()-1; i++)
{
Reserve element = array.get(i);
String nomI = element.giveNameClient();
int j = i;
String nomJM = array.get(j-1).giveNameClient();
String nomJ = array.get(j).giveNameClient();
while(j > 0 && (nomJM.compareTo(nomJ) > 0))
{
Reserve temp = array.get(j);
array.set(j, array.get(j-1));
array.set(j-1, temp);
j = j-1;
}
}
}
So У меня есть отель, который имеет ArrayList из резерва, каждый резерв имеет имя клиента, который это сделал. То, что я хочу сделать, - это отсортировать резервный массив ArrayList по имени клиента.
Так у меня есть метод, который печатает каждый клиент имя, как это:
public void showNames()
{
for(Reserve x: reserves)
{
System.out.print(x.giveNameClient() +" ");
}
}
в основном() методе я напечатать имена клиентов до сортировки, а затем сортируются. Кстати, арреалист резервов находится в классе Test.
public static void main(String args[])
{
Test object = new Test();
System.out.println("Names: ");
object.showNames();
object.insertionSort();
System.out.println();
System.out.println("after sorting: ");
object.showNames();
}
Теперь, когда я скомпилировать это я получаю следующее:
Names:
Juan Jhon Camil William Andrew Felip
after sorting:
Andrew Camil Jhon Juan William Felip
Дело в том, что выход должен быть Эндрю Camil Felip Jhon Juan William
Спасибо.
Проверьте состояние своей петли. Вы игнорируете последний элемент в своем списке – Eran
Да, я знаю, что игнорирую этот последний элемент, но я не могу понять, почему – ravelinx
См. [Это] (http://webthanga.blogspot.in/2016/02/generic-type-insertion -sort-this-below.html) для общей сортировки вставки – Thanga