每天一演算法 (排序演算法總結)

2022-04-09 05:32:45 字數 687 閱讀 6454

一、集中排序演算法的比較

1.一般情況下幾乎不太使用氣泡排序,它過於簡單了,以至於可以毫不費力的寫出來。然而當資料量很小的時候,它會有些應用的價值。

2.選擇排序雖然把交換次數降到了最低,但比較的次數仍然很大,當資料量小的時候,並且交換資料相對於比較資料更加耗時的情況下,可以應用選擇排序。

3.單大多數情況下,假設當資料量比較小或者基本有序時,插入排序演算法時三種簡單排序演算法中最好的選擇。對於更大資料量的排序來說,快速排序通常是最快的方法。

4.除了在速度方便比較排序演算法外,還有一種對各種演算法的衡量標準是演算法需要的記憶體空間有多大。氣泡排序、選擇排序、插入排序都可以「就地」完成排序,即除了初始的陣列外,幾乎不需要其他的記憶體空間,所有的排序演算法都需要乙個額外的變數來暫時儲存交換時的資料項。

二、小結

1.前面的三種演算法都假定了陣列作為資料儲存結構。

2.排序包括比較陣列中資料項的關鍵字和移動相應的資料項(實際上,是資料項的引用),知道它們排好序為止。

3.前面的三種演算法的事件複雜度最壞都是o(n2)。不過,某些情況下某個演算法可以比其他演算法快很多。

4.氣泡排序是效率最差的演算法,但它對簡單。

5.插入排序演算法是前面三種排序演算法中應用最多的。

6.如果具有相同關鍵字的資料項,經過排序它們的順序保持不變,這樣的排序就是穩定的。

7.前面三種演算法除了需要初始陣列之外,都只需要乙個臨時變數。

每天一演算法 (氣泡排序)

一 原理 比較兩個相鄰的元素,將值大的元素交換至右端。二 思路 依次比較相鄰的兩個數,將小數放在前面,大數放在後面。即在第一趟 首先比較第1個和第2個數,將小數放前,大數放後。然後比較第2個數和第3個數,將小數放前,大數放後,如此繼續,直至比較最後兩個數,將小數放前,大數放後。重複第一趟步驟,直至全...

每天一演算法 (選擇排序)

一 原理 在要排序的一組數中,選出最小的乙個數與第乙個位置的數交換 然後在剩下的數當中再找最小的與第二個位置的數交換,如此迴圈到倒數第二個數和最後乙個數比較為止 二 思路 1.假設有乙個陣列為 n個數 第一趟先選出 最小的元素 min k 將min k 位置 和 第乙個元素的位置 互換,此時第乙個元...

每天一演算法 (插入排序)

一 原理 插入排序就是把當前待排序的元素插入到乙個已經排好序的列表裡面。對於給定的一組記錄,初始時假定第乙個記錄自成乙個有序序列,其餘記錄為無序序列。接著從第二個記錄開始,按照記錄的大小依次將當前處理的記錄插入到其之前的有序序列中,直到最後乙個記錄插到有序序列中為止。二 思路 1.在要排序的一組數中...