Сортировка связанного списка в Java

Я написал алгоритм пузырьковой сортировки для сортировки связанного списка. Я Я новичок в Java и пытаюсь изучить структуры данных. Я не понимаю, почему мой второй элемент не отсортирован должным образом.

РЕДАКТИРОВАТЬ

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;
        }
    }
}

Это результат, который я получаю

List after construction: [  3  6  9  4  12  15  ]
After sorting: [  3  4  9  12  6  15  ]

Кроме того, я знаю худший сценарий пузыря sort - O (n 2 ). Могу ли я использовать сортировку слиянием в связанном списке, чтобы уменьшить временную сложность?

Спасибо!

13
задан templatetypedef 24 January 2012 в 04:40
поделиться