1. 程式人生 > >數據結構(七)排序---排序知識點總結

數據結構(七)排序---排序知識點總結

至少 pla 有序 rdquo 穩定 href 比較 cli tar

回顧:排序分類

(一)插入類

直接插入排序

折半插入排序

希爾排序

本質還是插入排序

(二)交換類

冒泡排序

快速排序

(三)選擇類

簡單選擇排序

堆排序

(四)歸並類

歸並排序

一:復雜度總結

(一).時間復雜度

1.平均情況下:快些排隊(快希排堆)

在平均情況下,快速排序,希爾排序,歸並排序,堆排序的時間復雜度都是O(nlog2n),其他都是O(n2)

2.最壞情況下

快速排序的時間復雜度為O(n2),其他的和平均情況下相同

(二).空間復雜度

快速排序是O(log2n),歸並排序是O(n),基數排序是O(rd),其他都是O(1
)

(三).其他:容易插,起的好

直接插入排序和冒泡排序對於所謂的:直接插和起的好(指的是初始化序列已經有序)。其復雜度變為O(n)

二:穩定性總結

技術分享圖片
就是說在我們未排序之前,數據中可能已經有部分數據是相同的,若是我們排序後,這些相同的數據的先後順序沒有改變,那麽就是穩定的,若是我們在排序中,將相同的數據的順序進行了修改(雖然沒啥影響,但是做了多余的操作,而且說明我們的操作對數據的影響較大,不穩定),那麽就是不穩定的
穩定性定義

(一)快些選隊:不穩定

快速排序,希爾排序,簡單選擇排序,堆排序都是不穩定排序,其他都是穩定排序

三:其他細節:排序原理相關

(一)經過一趟排序,能夠保證一個關鍵字達到最終位置,這樣的排序是交換類(冒泡,快速)選擇類(簡單排序,堆)

(二)排序算法關鍵字比較次數原始序列無關---簡單選擇排序折半插入排序

(三)排序算法的排序趟數和原始序列有關---交換類的排序

四:其他結論

(一)借助於“比較”進行排序的算法,在最壞情況下的時間復雜度至少為O(nlog2n)

數據結構(七)排序---排序知識點總結