У меня есть пузырьковая сортировка, которая работает со связанным списком, созданным из данных в файле. Мой алгоритм сортировки не работает, если число меньше моего начального главного узла. Как я могу обновить свой код, чтобы исправить это?
пример: если мой список 3, 1, 8, 5, он напечатает 3 -> 5 -> 8, а 1 - это не то место, которое нужно увидеть
public void bubbleSort(LinkedNode head) {
LinkedNode previous;
LinkedNode current;
LinkedNode next;
boolean isSorted = true;
//if list is empty or only 1 item is in list -> it is sorted
if (head == null || head.getNext() == null) {
return;
}
long start = System.currentTimeMillis(); //begin count for bubbleSort
while(isSorted) {
bubbleComparisons = 0;
bubbleExchanges = 0;
previous = null;
current = head;
next = head.getNext();
isSorted = false;
while(next != null) {
bubbleComparisons ++; //increment counter for each comparison made
if (current.getElement() > next.getElement()) {
if (head == current) {
head = next;
}
else {
previous.setNext(next);
}
current.setNext(next.getNext());
next.setNext(current);
isSorted = true;
current = next;
bubbleExchanges++;
}
previous = current;
current = previous.getNext();
next = current.getNext();
}