我被要求做快速排序,用插入排序切斷。但我不明白截止值的含義。我需要有人用現實世界的例子來闡述這個概念。
2 回答

呼啦一陣風
TA貢獻1802條經驗 獲得超6個贊
一些算法在漸近上優(yōu)于其他算法。在您的情況下,Quicksort 的漸近運行時間是 O(N(logN)) 而插入排序的漸近運行時間是 O(N^2)。
這意味著對于較大的 N 值,快速排序將比插入排序運行得更快。
但是,對于較小的 N 值,插入排序可能運行得更快。因此,您可以通過將 Quicksort 與小數組大小的插入排序相結合來優(yōu)化 Quicksort 的實際運行時間。
快速排序是一種遞歸算法,它將原始數組分解為更小的數組,并在每個子數組上遞歸運行。插入排序截斷意味著一旦數組大小小于某個恒定截斷大小,就使用插入排序對這些小數組進行排序,而不是繼續(xù)遞歸。

不負相思意
TA貢獻1777條經驗 獲得超10個贊
如果沒有看到確切的需求說明,就很難確定。
但是,我認為這意味著您應該使用O(N^2)
低于特定大?。ā敖財唷保┑牟迦肱判?( ) 和O(NlogN)
高于該大小的快速排序 ( )。
它們可能意味著您對輸入數組的大小進行此測試。
它們也可能意味著您實現了混合排序,并在快速排序分區(qū)大小小于閾值時對子數組使用插入排序。
兩種解釋都有道理。
我需要有人用現實世界的例子來闡述這個概念。
我懷疑您是否需要示例來理解這一點。如果您了解插入排序和快速排序算法,那么這在概念上很簡單。(如果你不理解它們,有很多地方可以閱讀它們,從你的數據結構和算法教科書開始。)
添加回答
舉報
0/150
提交
取消