利用插入排序對鍊錶進行排序

2021-08-23 14:38:33 字數 644 閱讀 9286

下圖是對 4-15-9-1插入排序的舉例

當if(p.val<=p.next.val)  當不滿足條件時 q=p.next  p.next=q.next 

這時候,需要把q節點放到p節點之前的合適位置,即

while(r.next.val<=q.val)

當條件滿足時 r後移,當不滿足時表示,找到比q節點大的數,那麼需要把q節點放入r.next之前

具體**如下:

public listnode insertionsortlist(listnode head)

listnode head1 = new listnode(0);

head1.next=head;

listnode p = head;

listnode q;

listnode r;

while(p != null && p.next != null)else

q.next=r.next;

r.next=q;}}

return head1.next;

}

利用插入排序對鍊錶進行排序

definition for singly linked list.public class listnode 直接插入排序 後面的元素一直與前面的元素比較,小則前移 public class solution else r指向無序列中第乙個元素 listnode r q.next while r ...

對鍊錶進行插入排序

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

對鍊錶進行插入排序

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