Ho scritto un algoritmo di ordinamento delle bolle per ordinare un elenco collegato. Sono un principiante di Java e sto provando ad apprendere strutture dati. Sono confuso perché il mio secondo elemento non è ordinato correttamente.Ordinamento di un elenco collegato in Java
EDIT
class SListNode {
Object item;
SListNode next;
SListNode(Object obj) {
item = obj;
next = null;
}
SListNode(Object obj, SListNode next) {
item = obj;
this.next = next;
}
}
public class SList {
private SListNode head;
private SListNode temp;
public void sortList() {
SListNode node = head,i,j;
head = node;
i = node;
j = node.next;
while(i.next != null) {
while(j.next != null) {
if((Integer)i.item < (Integer)j.item) {
temp = i.next;
i.next = j.next;
j.next = temp;
}
j = j.next;
}
i = i.next;
}
}
}
Questa è l'uscita sto ottenendo
List after construction: [ 3 6 9 4 12 15 ]
After sorting: [ 3 4 9 12 6 15 ]
Oltre So che lo scenario peggiore di un bubble sort è O (n). Posso usare mergesort su una lista collegata per avere una complessità temporale migliore?
Grazie!
Che cos'è 'SListNode'? Prendi in considerazione la pubblicazione dell'implementazione. – paislee
Senza rispondere direttamente, il modo di indagare sarebbe su System.out.println() la tua lista dopo ogni scambio e dopo ogni ciclo esterno per vedere cosa sta succedendo. – user949300