【算法分析】排序算法

堆排序

問:堆排序的最差時間複雜度是多少
答:O(NlogN)

我一開始以爲是N^2,因爲調整一個堆,最壞情況是O(N)(在生成新堆的時候,用數列錯位相減法得到)
我錯在:
調整堆最壞情況的確是O(N),但是每次堆排序只有第一次調整可能會達到O(N),其他情況只需要調整一條路線就好,所以時間複雜度是O(logN)。
T(n) = O(N + (N - c)logN) = O(NlogN)

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