當前位置:成語大全網 - 書法字典 - c語言:如果原始記錄接近正序或逆序,則選擇堆排序,如果初始記錄無序,則最好選擇快速排序。這是為什麽呢?

c語言:如果原始記錄接近正序或逆序,則選擇堆排序,如果初始記錄無序,則最好選擇快速排序。這是為什麽呢?

1,堆排序的性能:時間復雜度始終為Nlogn(N)。

2.快速排序不屬於原地排序。因為程序中使用了遞歸,所以需要遞歸調用棧的支持,而棧的長度取決於遞歸調用的深度。平均來說,需要O(logn)的堆棧空間;最壞的情況下,棧空間可以達到O(n)。

1)劃分元素的選擇是影響時間性能的關鍵。

2)輸入數據順序越亂,所選劃分元素值的隨機性越好,排序速度越快。快速排序不是壹種自然的排序方法。

3)改變劃分元素的選擇方法,最多只能改變算法的平均時間性能,不能改變最差的時間性能。即在最壞的情況下,快速排序的時間復雜度總是O(n 2)。