關於排序的總結

2021-09-13 15:45:45 字數 1524 閱讀 3598

概念:

排序是按關鍵字的非遞減或非遞增順序對一組記錄重新進行排序的操作。主要目的是為了便於查詢。

穩定性:

假設起始狀態a=b,且a在b的前面,經過排序之後如果a仍然在b之前,則這種排序是穩定的,否則稱為不穩定排序。不能說不穩定排序的方法不好,各有各的使用場景。

分類:

插入排序:

直接插入排序

理解:從第二個數開始,與他前面的數不斷作比較,直到找到他合適的位置。比較次數和移動次數與初始排列有關

時間複雜度:o(n2)

穩定性:穩定

折半插入排序

理解:減少了比較次數,但沒有減少移動次數。平均效能優於直接插入排序。它所需要的關鍵碼比較次數與待排序物件序列的初始排列無關,僅依賴於物件個數,在資料量較少的情況下比較有優勢。

時間複雜度:o(n2)

穩定性:穩定

希爾排序

理解:希爾排序也叫縮小增量排序,他是先確定乙個間隔,比如5,然後第乙個數與第六個數作比較,一次比較下去,然後縮小增量,直至為一。它的速度比快排更快

時間複雜度:o(n1.3)

穩定性:不穩定

交換排序:

氣泡排序

理解:是我們最熟悉的排序,就是前後兩個數不斷的比較,大數沉底,小數上浮,它在排序時與資料的初始序列有關。

時間複雜度:o(n2)

穩定性:穩定

快速排序

理解:有乙個基準,分別用low,high與這個基準資料比較,比他大的在一邊,比他小的在另一邊,然後重新給子表選擇基準繼續排序,知道子表的個數為一時,排序完成。

時間複雜度:o(nlog2n)

穩定性:不穩定

選擇排序:

簡單選擇排序

理解:從第乙個數開始與後面的數逐個比較,把最小的數找出來放在最前面,然後找第二小的數,這樣依次找下去,完成排序。與初始序列無關

時間複雜度:o(n2)

穩定性:不穩定

堆排序理解:結合樹形結構完成的排序。

時間複雜度:o(nlog2n)

穩定性:不穩定

歸併排序

歸併排序

理解:將兩個或兩個以上的有序表組合成乙個新有序表,兩個有序表的元素兩兩比較,小的元素進入新的序列,指標後移,直至指標移至最後,比較結束輸出新的序列即可。

時間複雜度:o(nlog2n)

穩定性:穩定

總結:排序時間複雜度

穩定性與初始序列的關係

插入排序

o(n2)

穩定有關

折半插入排序

o(n2)

穩定希爾排序

o(n1.3)

不穩定氣泡排序

o(n2)

穩定有關

快速排序

o(nlog2n)

不穩定選擇排序

o(n2)

不穩定堆排序

o(nlog2n)

不穩定歸併排序

o(nlog2n)

穩定

關於排序的總結

在資料結構中講了一些基本的排序方法,在此做乙個總結。1 插入排序 這種排序是每一趟都在找某個帶插入元素的位置,找到之後插入到待插入的點。1 直接插入排序 這種方法是從陣列的第乙個元素依次到最後乙個元素,當當前為第i個元素時,和前面的元素逐個相比較,以找到其在前面i 1個元素當總的位置然後插入。演算法...

自己關於排序的總結

所有排序的總結 1 插入排序 插入排序是最簡單最直觀的排序演算法了 它的依據是 遍歷到第 n個元素的時候前面的 n 1個元素已經是排序好的了 那麼就查詢前面的 n 1個元素把這第 n個元素放在合適的位置 如此下去直到遍歷完序列的元素為止.插入排序是最簡單最直觀的排序演算法了 它的依據是 遍歷到第 n...

關於快速排序的總結

快速排序其實是氣泡排序的公升級版,都具有交換排序的思想。快速排序通過一遍排序,將資料分為兩部分,一部分資料都比另外一部分資料小,然後再分別對這兩部分資料再進行此排序,直到排序結束。因此,此排序方法用到了遞迴。下面來舉個例子 對69 65 90 37 92 6 28 54 八個數進行排序 69 65 ...