排序演算法分析

2021-08-17 17:16:54 字數 915 閱讀 7505

注:都是以增序為例說明!

一、氣泡排序

a:原理——從陣列的第乙個位置開始,依次兩兩比較array[index]與array[index + 1], 如果array[index]大於array[index + 1],則利用temp交換兩者位置,直到陣列結束。

從陣列的第乙個位置開始,重複上面的動作,直至第n - 1個位置結束;

從陣列的第乙個位置開始,重複上面的動作,直至第n - 2個位置結束;

......

b: 從第乙個元素開始相鄰的兩個元素兩兩比較,按照小數在上大數在下的規則交換,一趟下去大數沉底。

再從第乙個元素開始兩兩比較相鄰兩個元素,直到倒數第二個元素

......

氣泡排序也是穩定的排序演算法,時間複雜度為t(n)=o(n^2);

氣泡排序的**為:

二、選擇排序

思路:先從所有序列中找到最小的數,放在第乙個位置;

再從剩餘的所有元素中找到最小的數,放在第二個位置;

......

選擇排序是最不穩定的排序演算法,eg:[3,3,1], 第一次交換時,第乙個3就跑到第二個3後面了。

選擇排序的時間複雜度為:t(n)= o (n^2)

關鍵**:

三、插入排序

思路:插入排序的思想是陣列部分有序,將無序部分插入已有的有序序列中。

排序演算法分析

所謂排序,即將原本無需的乙個序列重新排列成有序的序列。注意,這個序列中的每一項可能是單獨的資料元素,也可能是一條記錄。所謂穩定性,是指排序中的序列中有兩個或者兩個以上相同的資料項,排序前後,這些相同的資料項相對位置沒有發生變化,那麼這個排序演算法是穩定的。下面就幾種常見排序演算法進行總結分析,並會加...

排序演算法分析 氣泡排序

假設有n個元素,現在要把這些元素按照從小到大的順序進行排序,那麼演算法步驟如下,從第0個元素開始,比較相鄰的兩個元素,第0個和第1個,第1個和第2個,第n 2個和第n 1個,比較範圍是 0,n 1 所有元素都參與比較 如果左邊的比右邊的大,就交換他們的位置,一直比較到最後乙個元素。這樣經過第一輪交換...

排序演算法分析 快速排序

假設有n個元素,現在要把這些元素按照從小到大的順序進行排序,那麼演算法步驟如下,選擇中間位置的元素作為基準值 pivot value 其索引為 0 n 1 2 從第0個元素開始從左往右找到比基準值大的元素,其索引為i從第n 1個元素開始從右往左找到比基準值小的元素,其索引為j交換這兩個元素 從索引i...