Tôi đã viết thuật toán sắp xếp bong bóng để sắp xếp danh sách được liên kết. Tôi là một người mới bắt đầu Java và đang cố gắng tìm hiểu cấu trúc dữ liệu. Tôi bối rối vì sao phần tử thứ hai của tôi không được sắp xếp đúng cách.Sắp xếp danh sách được liên kết trong 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;
}
}
}
Đây là sản phẩm tôi nhận được
List after construction: [ 3 6 9 4 12 15 ]
After sorting: [ 3 4 9 12 6 15 ]
Bên cạnh tôi biết trường hợp kịch bản tồi tệ nhất của một loại bong bóng là O (n). Tôi có thể sử dụng sáp nhập trên danh sách được liên kết để có độ phức tạp tốt hơn không?
Cảm ơn!
'SListNode' là gì? Xem xét việc đăng triển khai. – paislee
Nếu không trả lời trực tiếp, cách điều tra sẽ là System.out.println() danh sách của bạn sau mỗi lần hoán đổi và sau mỗi vòng lặp bên ngoài để xem điều gì đang xảy ra. – user949300