Can bubble sort work on linked list?

I have written a bubble sort algorithm to sort a linked list. I am a Java beginner and trying to learn data structures. I am confused why my second element is not sorted properly.

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

This is the output I am getting

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

Besides I know the worst case scenario of a bubble sort is O[n2]. Can I use mergesort on a linked list to have a better time complexity?

Video liên quan

Chủ Đề