鍊錶進行插入排序

2021-07-11 09:24:52 字數 1086 閱讀 7604

插入排序:在已排好序的序列中,找到當前要排序元素的插入位置即可。如果我們對鍊錶進行排序,我們只需要找到當前插入位置的前乙個指標即可。然後當前元素向前移動一位。//對單向鍊錶進行插入排序

#include#includeusing namespace std;

//鍊錶資料結構

struct listnode

;//在鍊錶末尾追加元素

else

tmp->next = pnew; }}

//正序輸出鍊錶

void show(listnode *phead)

cout << endl;

}listnode *insertionsortlist(listnode *head)

listnode *tmp = p;

p = p->next;

tmp1->next = p;

tmp->next = head;

head = tmp;

continue;

} //指向要插入位置的前乙個指標

listnode *q = head;

while (q->next != p)

//當前元素已在插入的位置,直接移動p即可

if (q->next == p)

else

listnode *tmp = p;

p = p->next;

tmp1->next = p;

tmp->next = q->next;

q->next = tmp;

} }return head;

}int main()

cout << "排序之前的輸出: ";

show(phead);

listnode *head = insertionsortlist(phead);

cout << "排序之後的輸出: ";

對鍊錶進行插入排序

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

對鍊錶進行插入排序

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

對鍊錶進行插入排序

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