一步一步寫演算法(之鍊錶排序)

2021-08-26 07:56:39 字數 779 閱讀 5563

相比較線性表的排序而言,鍊錶排序的內容稍微麻煩一點。一方面,你要考慮資料插入的步驟;另外一方面你也要對指標有所顧慮。要是有一步的內容錯了,那麼作業系統會馬上給你彈出乙個exception。就鍊錶的特殊性而言,適合於鍊錶的排序有哪些呢?

(1)插入排序 (適合)

(2)氣泡排序 (適合)

(3)希爾排序 (適合)

(4)選擇排序 (適合)

(5)快速排序 (不適合)

(6)合併排序 (不適合)

(7)基數排序 (不適合)

(8)堆排序 (不適合)

其實,一般來說。如果涉及到資料之間的相對關係調配,那麼只適合線性排序;如果只是資料內容之間的相互交換,那麼這種排序方法也比較適合鍊錶的排序。快速排序、合併排序、堆排序都涉及到了中間值的選取問題,所以不大適合鍊錶排序。

為了說明鍊錶排序是怎麼進行的,我們可以利用插入排序作為示例,描述鍊錶是怎麼進行插入排序的。

a)首先遍歷節點,一邊是排序好的節點,一邊是待排序的節點

void sort_for_link_node(node** ppnode) return; }

b)對於待插入的節點,選擇合適的位置插入即可

void insert_for_sort_operation(node** ppnode, node* pnode) cur = *ppnode; while(cur) pnode->next = prev->next; prev->next = pnode; return; }

一步一步寫演算法(之鍊錶排序)

相比較線性表的排序而言,鍊錶排序的內容稍微麻煩一點。一方面,你要考慮資料插入的步驟 另外一方面你也要對指標有所顧慮。要是有一步的內容錯了,那麼作業系統會馬上給你彈出乙個exception。就鍊錶的特殊性而言,適合於鍊錶的排序有哪些呢?1 插入排序 適合 2 氣泡排序 適合 3 希爾排序 適合 4 選...

一步一步寫演算法(之鍊錶排序)

原創 相比較線性表的排序而言,鍊錶排序的內容稍微麻煩一點。一方面,你要考慮資料插入的步驟 另外一方面你也要對指標有所顧慮。要是有一步的內容錯了,那麼作業系統會馬上給你彈出乙個exception。就鍊錶的特殊性而言,適合於鍊錶的排序有哪些呢?1 插入排序 適合 2 氣泡排序 適合 3 希爾排序 適合 ...

一步一步寫演算法(之鍊錶排序)

相比較線性表的排序而言,鍊錶排序的內容稍微麻煩一點。一方面,你要考慮資料插入的步驟 另外一方面你也要對指標有所顧慮。要是有一步的內容錯了,那麼作業系統會馬上給你彈出乙個exception。就鍊錶的特殊性而言,適合於鍊錶的排序有哪些呢?1 插入排序 適合 2 氣泡排序 適合 3 希爾排序 適合 4 選...