leetcode 147 對鍊錶進行插入排序

2021-10-10 16:41:54 字數 808 閱讀 1587

對鍊錶進行插入排序。

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

每次迭代時,從輸入資料中移除乙個元素(用紅色表示),並原地將其插入到已排好序的鍊錶中。

插入排序演算法:

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

每次迭代中,插入排序只從輸入資料中移除乙個待排序的元素,找到它在序列中適當的位置,並將其插入。

重複直到所有輸入資料插入完為止。

插入排序的思想,注意插入頭和插入尾的情況

class

solution

listnode* finalhead = head;

listnode* ordered_tail = head;

listnode* unordered_head = head-

>next;

if(unordered_head ==

nullptr

)while

(ordered_tail-

>next !=

nullptr

)//彈出時若findfsn == uh則說明uh->val是有序鍊錶中最大的,接在結尾即可

if(findfirstbiggernode == unordered_head)

else

if(pre !=

nullptr

)else

if(pre ==

nullptr)}

return finalhead;}}

;

Leetcode 147 對鍊錶進行排序

對鍊錶進行插入排序。插入排序演算法 插入排序是迭代的,每次只移動乙個元素,直到所有元素可以形成乙個有序的輸出列表。每次迭代中,插入排序只從輸入資料中移除乙個待排序的元素,找到它在序列中適當的位置,並將其插入。重複直到所有輸入資料插入完為止。示例 1 輸入 4 2 1 3 輸出 1 2 3 4 到了鍊...

LeetCode 147 對鍊錶進行插入排序

插入排序演算法 插入排序是迭代的,每次只移動乙個元素,直到所有元素可以形成乙個有序的輸出列表。每次迭代中,插入排序只從輸入資料中移除乙個待排序的元素,找到它在序列中適當的位置,並將其插入。重複直到所有輸入資料插入完為止。方法1 嚴格按照演算法說明,在原始列表中進行操作,利用4個鍊錶指標分別表示當前元...

LeetCode147 對鍊錶進行插入排序

對鍊錶進行插入排序。插入排序的動畫演示如上。從第乙個元素開始,該鍊錶可以被認為已經部分排序 用黑色表示 每次迭代時,從輸入資料中移除乙個元素 用紅色表示 並原地將其插入到已排好序的鍊錶中。插入排序演算法 插入排序是迭代的,每次只移動乙個元素,直到所有元素可以形成乙個有序的輸出列表。每次迭代中,插入排...