排序一 基礎排序

2021-06-21 05:41:52 字數 2851 閱讀 5121

1、比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。

2、對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。

3、針對所有的元素重複以上的步驟,除了最後乙個。

4、持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。

分類   排序演算法

資料結構  陣列

最差時間複雜度  о(n2)

最優時間複雜度  о(n)

平均時間複雜度  о(n2)

最差空間複雜度 о(n) total, o(1) auxiliary

/**

* 氣泡排序

*/public void maopao() ;

for (int i = 0; i < nums.length - 1; i++) }}

print(nums);

}

1、從第乙個元素開始,迴圈

2、定義乙個最小值索引記錄 minindex, 為當前值索引 i。

3、(當前minindex元素 x ) 對比 剩餘未排序的其他元素。

4、如果發現有小於x的元素,則將該值索引標記為 minindex

5、重複步驟3,4後,交換 minindex 和 i 的值。

分類   排序演算法

資料結構  陣列

最差時間複雜度  о(n2)

最優時間複雜度  о(n2)

平均時間複雜度  о(n2)

最差空間複雜度 о(n) total, o(1) auxiliary

選擇排序的交換操作介於和次之間。選擇排序的比較操作為次之間。選擇排序的賦值操作介於和次之間。

比較次數o(n^2),比較次數與關鍵字的初始狀態無關,總的比較次數n=(n-1)+(n-2)+...+1=n*(n-1)/2。 交換次數o(n),最好情況是,已經有序,交換0次;最壞情況是,逆序,交換n-1次。 交換次數比氣泡排序少多了,由於交換所需cpu時間比比較所需的cpu時間多,n值較小時,選擇排序比氣泡排序快。

/**

* 簡單選擇排序

*/public void ******select() ;

for (int i = 0; i < nums.length - 1; i++)

}if (min != i)

}print(nums);

}

1、從第乙個元素開始,該元素可以認為已經被排序

2、取出下乙個元素,在已經排序的元素序列中從後向前掃瞄

3、如果該元素(已排序)大於新元素,將該元素移到下一位置

3、重複步驟3,直到找到已排序的元素小於或者等於新元素的位置

4、將新元素插入到該位置後

5、重複步驟2~5

平均來說插入排序演算法複雜度為o(n2)。因而,插入排序不適合對於資料量比較大的排序應用。但是,如果需要排序的資料量很小,例如,量級小於千,那麼插入排序還是乙個不錯的選擇

* 插值排序

*/public void insert() ;

for (int i = 1; i < nums.length; i++)

nums[j] = data;

}print(nums);

}核心:先將序列分成較多個子串行分別進行排序,再分成較少個子序列分別進行排序,直到最後為乙個序列排序。

形象的說:比如先分成  8  個子序分別排序,再 4  個子序,再 2 個子序,最後 1 個(1個也就是全部序列啦)。

演算法的最後一步就是普通的插入排序

在大陣列中表現優異的步長序列是(斐波那契數列除去0和1將剩餘的數以**分割槽比的兩倍的冪進行運算得到的數列):0, 

各類步長公式

while (seg < nums.length / 3) seg = seg * 3 + 1; // : 1, 4, 13, 40, 121, ...每次的步長。

for (; seg >= 1; seg /= 3)

nums[j] = data;}}

print(nums);

}

一 基礎排序

本篇的基礎排序演算法的複雜度基本上為 o 1.selection sort 選擇排序 演算法思想 首先從未排序序列中找到最小的元素,放置到排序序列的起始位置,然後從剩餘的未排序序列中繼續尋找最小元素,放置到已排序序列的末尾。所以稱之為選擇排序。includeusing namespace std t...

基礎排序演算法一 氣泡排序

氣泡排序 bubble sort 又被稱為氣泡排序或泡沫排序。它是一種較簡單的排序演算法。它會遍歷若干次要排序的數列,每次遍歷時,它都會從前往後依次的比較相鄰兩個數的大小 如果前者比後者大,則交換它們的位置。這樣,一次遍歷之後,最大的元素就在數列的末尾!採用相同的方法再次遍歷時,第二大的元素就被排列...

基礎演算法 排序 一

總結 排序演算法維基百科 經典排序演算法 快速排序quick sort 經典排序演算法 桶排序bucket sort 經典排序演算法 插入排序insertion sort 經典排序演算法 基數排序radix sort 經典排序演算法 鴿巢排序pigeonhole sort 經典排序演算法 歸併排序m...