單鏈表之排序單鏈表

2021-08-19 19:34:15 字數 886 閱讀 2321

package list;

public class sortedsinglylist> extends singlylist

/* * 將values陣列中的所有物件按值大小插入

*/public sortedsinglylist(t values)

/* * 過載深拷貝,由單鏈表構建排序單鏈表

*/public sortedsinglylist(singlylistlist)

/* * 深拷貝構造方法,這個方法和上面內容基本一致,差的就是list的型別不同,但是原理是一樣的

*/@suppresswarnings("unchecked") // 如果方法中有警告,用了這句話就沒有警告了,但是沒什麼實際叼用

public sortedsinglylist(sortedsinglylistlist)

/* * 設定節點內容,但是排序單鏈表中不支援,所以要覆蓋掉,然後丟擲異常 這裡如果不寫,就會呼叫父類的set方法,這樣你的鍊錶就不是排序的了

*/public void set(int i, t x)

/* * 原理同上,就不多說了

*/public nodeinsert(int i, t x)

/* * 這是最關鍵的地方了,順序插入節點,時間複雜度為o(n)

*/public nodeinsert(t x)

front.next = new node(x, p);

return front.next; // 返回插入節點

} /*

* 好了剩下的一些方法,都可以繼承單鏈表的方法,這裡就不再一一講述了

*/public static void main(string args)

}

單鏈表排序

思路1 將鍊錶中的資料存入陣列中,使用陣列進行排序,排好後再存入鍊錶中。當然這並不是這題所要考察的。但是在實際應用中卻相當有價值。因為鍊錶中的排序演算法都比較慢,進行轉存再排序也是一種很好的方法。思路2 排序演算法有 1,插入排序 簡單插入排序,希爾排序 2,交換排序 氣泡排序,快速排序 3,選擇排...

單鏈表排序

1 歸併排序 將鍊錶拆分成兩個鍊錶,遞迴,歸併,將兩個已排序鍊錶合併 public listnode sortlist listnode head pre.next null return merge sortlist head sortlist slow public listnode merge...

單鏈表排序

思路 sort排序函式執行一次,將鍊錶倆倆之間比較大小,比較之後,大的在後,小的在前 鍊錶節點之間只交換內容,節點不動 只有鍊錶的所有倆倆相鄰之間都是小的在前,大的在後,才返回true,否則返回false。while sort head include include include include...