資料結構之排序演算法特點總結

2021-09-12 12:08:10 字數 1509 閱讀 6271

1.插入與氣泡排序的速度較慢,但是當參加排序的元素區域性或整體有序時,能達到較快的速度,這時對於快速排序來說,反而會變慢

1.1對初始狀態為遞增序列的表按遞增順序排序,最省時間的是插入演算法

1.2分別採用堆排序,快速排序,氣泡排序和歸併排序,對初態為有序的表,則最省時間的是冒泡演算法,

1.3對冒泡演算法而言,初始序列為反序時交換次數最多。

2.當n較小時,對於穩定性不做要求時,宜採用選擇排序,當對穩定性有要求時,宜選用插入或氣泡排序

3.待排序的記錄關鍵字在乙個明顯的有限範圍內時,且空間允許,使用桶排序

4.當n較大且關鍵字元素隨機,對穩定性也無需求時採用快速排序

5.當n較大且關鍵字元素有序,對穩定性有要求,且當空間允許時,使用歸併排序,否則(對穩定性無要求)用堆排序。

6.如果只想得到1000個元素組成的序列中第5個最小元素之前的部分排序的序列,用堆排序方法最快。

6.1求前k個最大元素選堆排序較好

6.2 在具有n個元素的集合中找第k(1≤k≤n)個最小元素,應使用快速排序方法。

7.對n個記錄的線性表進行快速排序為減少演算法的遞迴深度,每次區分後,先處理較短的部分

7.1設待排序記錄的個數為n,則快速排序的最小遞迴深度為

log2n(向下取整)

+1,最大遞迴深度n。

與初始序列之間的關係:

1.選擇排序、二路歸併、二分排序與初始序列無關,

2.冒泡、插入(?)、快速、希爾排序與原始序列有關

分類:1.堆排序是選擇類排序,實際上是一顆完全二叉樹結點的層次序列

2.在排序演算法中每一項都與其它各項進行比較,計算出小於該項的項的個數,以確定該項的位置叫列舉排序

外部排序:

1.外排序的基本操作過程是生成有序歸併串和歸併。

其它:1.在執行某個排序演算法過程中,出現了排序碼朝著最終排序序列位置相反方向移動,則該演算法是不穩定的這個說法是錯誤的

2.堆未必是一顆平衡二叉樹(對與根節點無要求)

3.在內部排序方法中,一趟排序後只有簡單選擇排序和氣泡排序可以選出乙個最大(或最小)元素,並加入到已有的有序子串行中,但要比較n-1次。選次大元素要再比較n-2次,其時間複雜度是o(n2)。從10000個元素中選10個元素不能使用這種方法。而快速排序、插入排序、歸併排序、基數排序等時間效能好的排序,都要等到最後才能確定各元素位置。只有堆排序,在未結束全部排序前,可以有部分排序結果。建立堆後,堆頂元素就是最大(或最小,視大堆或小堆而定)元素,然後,調堆又選出次大(小)元素。凡要求在n個元素中選出k(k<2)個最大(或最小)元素,一般均使用堆排序。因為堆排序建堆比較次數至多不超過4n,對深度為k的堆,在調堆演算法中進行的關鍵字的比較次數至多為2(k-1)次,且輔助空間為o(1)。

4.堆可以看作是n個結點的完全二叉樹。而敗者樹是由參加比賽的n個元素作葉子結點而得到的完全二叉樹。每個非葉(雙親)結點中存放的是兩個子結點中的敗者資料,而讓勝者去參加更高一級的比賽。另外,還需增加乙個結點,即結點0,存放比賽的全域性獲勝者。

5.氣泡排序結束的條件:當至多進行n-1趟起泡排序,或一趟起泡排序中未發生交換(即已有序)時,結束排序。

資料結構之排序演算法總結

時間複雜度比較 排序演算法名稱 時間複雜度 氣泡排序 比較排序演算法 o n n 選擇排序 比較排序演算法 o n n 插入排序 比較排序演算法 o n n 希爾排序 比較排序演算法 o nlog2n 歸併排序 比較排序演算法 o nlogn 堆排序 比較排序演算法 o logn 快速排序 o nl...

資料結構排序演算法總結

常用的演算法有插入排序 氣泡排序 選擇排序 快速排序 歸併排序 希爾排序 堆排序 計數排序和基數排序。下面對著九種常見排序方法進行總結 排序方法 時間複雜度 空間複雜度 個人評價 插入排序 o n 2 o 1 選擇排序 氣泡排序 希爾排序 o n log n 快速排序 o log n 歸併排序 o ...

資料結構 排序演算法總結

1 二路歸併排序 二路歸併排序 思路 利用分治思想,對原陣列進行二分分段,使元素在每一小段內有序,然後逐漸合併 如,最小分段是2,先2內有序,合併為4,4內有序。時間複雜度 o nlogn 空間複雜度 o n 需要乙個額外的陣列作為臨時儲存 static void mergesort int arr...