Я реализовал в своем коде одиночный список и мне нужно отсортировать список. Но мой код не работает, он работает в бесконечном цикле. Я должен сравнивать узлы в соответствии с их идентификатором в порядке возрастания.Отдельно связанный список bubble sort
Я не могу использовать массивы. Это моя реализация узла SLL.
class SLLNode implements Comparable<SLLNode> {
protected int id;
protected int plata;
protected SLLNode succ;
public SLLNode(int id,int plata, SLLNode succ) {
this.id = id;
this.plata=plata;
this.succ = succ;
}
@Override
public int compareTo(SLLNode o) {
return o.id - this.id;
}
}
public static void sort(SLL lista){
SLLNode current;
boolean check = true;
while(check) {
current = lista.getFirst();
check = false;
while(current.succ != null)
{
if(current.compareTo(current.succ) > 0)
{
SLLNode temp = current;
current=current.succ;
current.succ=temp;
check = true;
}
current = current.succ;
}
}
}
FYI вы должны избегать пузырьковой сортировки. Это один из худших алгоритмов сортировки со сложностью O (n^2). _ «Хотя алгоритм прост, он слишком медленный и непрактичный для большинства проблем» _ https://en.wikipedia.org/wiki/Bubble_sort –