演算法單鏈錶快速排序演算法實現
- typedef int ElemType;
- typedef struct ListNode* List;
- struct ListNode
- {
- ElemType key
- List next;
- };
實現程式碼如下:
- void QuickSort( List head, List tail )
- {
- if ( head->next == tail || head->next->next == tail )
- return;
- List mid = head->next;
- List p = head;
- List q = mid;
- ElemType pivot = mid->key;
- List t = mid->next;
- while ( t != tail )
- {
- if ( t->key
- p = p->next = t;
- else
- q = q->next = t;
- t = t->next;
- }
- p->next = mid;
- q->next = tail;
- QuickSort( head, mid );
- QuickSort( mid, tail );
- }
呼叫時引數head為(帶頭節點的)單連結串列頭節點指標,tail為單連結串列尾節點的next指標指向的類容。通常情況下tail的內容為NULL,因此,呼叫時為QuickSort(head, NULL)。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29012686/viewspace-1142673/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 單鏈錶快速排序排序
- 排序演算法-Java實現快速排序演算法排序演算法Java
- 快速排序(quicksort)演算法實現排序UI演算法
- 排序演算法之快速排序的實現排序演算法
- python排序演算法的實現-快速排序Python排序演算法
- 快速排序演算法C++實現排序演算法C++
- bash shell 實現快速排序演算法排序演算法
- 快速排序演算法(C語言實現)排序演算法C語言
- 資料結構和演算法(Golang實現)(25)排序演算法-快速排序資料結構演算法Golang排序
- 二十、快速排序演算法——JAVA實現(遞迴)排序演算法Java遞迴
- js實現兩種實用的排序演算法——冒泡、快速排序JS排序演算法
- 排序演算法__快速排序排序演算法
- 排序演算法:快速排序排序演算法
- 排序演算法-快速排序排序演算法
- 排序演算法——快速排序排序演算法
- 排序演算法 - 快速排序排序演算法
- 【JAVA演算法】排序演算法 -- 快速排序Java演算法排序
- python實現氣泡排序、插入排序以及快速排序演算法Python排序演算法
- 【演算法】快速排序演算法排序
- 快速排序演算法排序演算法
- 排序演算法之 '快速排序'排序演算法
- #排序演算法#【4】快速排序排序演算法
- 《排序演算法》——快速排序(Java)排序演算法Java
- 服務計算 TDD實踐——實現快速排序演算法排序演算法
- 前端演算法:快速排序演算法前端演算法排序
- 排序演算法:Java實現希爾排序排序演算法Java
- Array.sort 演算法原理(插入排序\快速排序in-place實現)演算法排序
- 排序演算法 Java實現排序演算法Java
- 排序演算法Java實現排序演算法Java
- 演算法-排序演算法思想及實現演算法排序
- 演算法之旅:快速排序演算法排序
- 演算法之快速排序演算法排序
- 畫江湖之演算法篇【排序演算法】快速排序演算法排序
- 畫江湖之演算法篇 [排序演算法] 快速排序演算法排序
- java:快速排序演算法與氣泡排序演算法Java排序演算法
- 快速理解7種排序演算法 | python3實現(排序演算法Python
- 排序圖解:js排序演算法實現排序圖解JS演算法
- 演算法之常見排序演算法-氣泡排序、歸併排序、快速排序演算法排序