中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java如何實現對鏈表進行插入排序

發布時間:2022-01-17 09:20:17 來源:億速云 閱讀:196 作者:小新 欄目:大數據

這篇文章主要介紹java如何實現對鏈表進行插入排序,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

對鏈表進行插入排序。

java如何實現對鏈表進行插入排序

插入排序的動畫演示如上。從第一個元素開始,該鏈表可以被認為已經部分排序(用黑色表示)。

每次迭代時,從輸入數據中移除一個元素(用紅色表示),并原地將其插入到已排好序的鏈表中。

插入排序算法:

  1. 插入排序是迭代的,每次只移動一個元素,直到所有元素可以形成一個有序的輸出列表。

  2. 每次迭代中,插入排序只從輸入數據中移除一個待排序的元素,找到它在序列中適當的位置,并將其插入。

  3. 重復直到所有輸入數據插入完為止。


示例 1:

輸入: 4->2->1->3
輸出: 1->2->3->4

示例 2:

輸入: -1->5->3->4->0
輸出: -1->0->3->4->5

答案:

 1public ListNode insertionSortList(ListNode head) {
2    if (head == null)
3        return head;
4    ListNode helper = new ListNode(0);
5    ListNode cur = head;
6    ListNode pre = helper;
7    ListNode next = null;
8    while (cur != null) {
9        next = cur.next;
10        while (pre.next != null && pre.next.val < cur.val) {
11            pre = pre.next;
12        }
13        cur.next = pre.next;
14        pre.next = cur;
15        pre = helper;
16        cur = next;
17    }
18    return helper.next;
19}

解析:

關于排序前面我們介紹了十幾種排序算法,這里讓使用插入排序,其實插入排序并不難,這里難的是鏈表的斷開和重連。當然我們還可以使用其他的方法,比如我們把鏈表的每一個節點全部斷開,然后存放到數組中,接著在排序,最后再把排序好的數組按順序全部再連接起來即可。

以上是“java如何實現對鏈表進行插入排序”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

平远县| 阜平县| 应用必备| 石首市| 苏尼特右旗| 汾西县| 循化| 黄冈市| 东至县| 荔波县| 四子王旗| 柳江县| 收藏| 灵璧县| 瑞金市| 兖州市| 天峨县| 桂平市| 临夏市| 武穴市| 余姚市| 仙游县| 吴桥县| 景宁| 江孜县| 天等县| 九江市| 灌云县| 哈密市| 治县。| 定远县| 尼勒克县| 清新县| 衡水市| 重庆市| 太谷县| 安塞县| 响水县| 旺苍县| 克什克腾旗| 茶陵县|