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

2021-07-03 04:09:52 字數 999 閱讀 3388

原創  

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

(1)插入排序    (適合)

(2)氣泡排序    (適合)

(3)希爾排序    (適合)

(4)選擇排序    (適合)

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

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

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

(8)堆排序         (不適合)

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

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

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

[cpp]view plain

copy

void

sort_for_link_node(node** ppnode)  

return

;  }  

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

[cpp]view plain

copy

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 希爾排序 適合 4 選...

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

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