Lintcode98 Sort List solution 題解

【題目描述】


Sort a linked list in O(nlogn) time using constant space complexity.

在O(nlogn) 時間複雜度和常數級的空間複雜度下給鏈表排序。

【題目鏈接】

www.lintcode.com/en/problem/sort-list/

【題目解析】

此題可以歸併排序。以下歸併排序實現的幾個要素。

1.按長度等分鏈表,歸併雖然不嚴格要求等分,但是等分能保證線性對數的時間複雜度。由於鏈表不能隨機訪問,故可以先對鏈表進行遍歷求得其長度。

2.合併鏈表,細節已在Merge Two Sorted Lists | Data Structure and Algorithm中詳述。

在按長度等分鏈表時進行「後序歸併」——先求得左半部分鏈表的表頭,再求得右半部分鏈表的表頭,最後進行歸併操作。

由於遞歸等分鏈表的操作需要傳入鏈表長度信息,故需要另建一輔助函數。

【參考答案】

www.jiuzhang.com/solutions/sort-list/



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章