數據結構(七)排序---排序知識點總結
阿新 • • 發佈:2018-09-23
至少 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)
數據結構(七)排序---排序知識點總結