關於排序演算法

2021-07-09 06:50:37 字數 338 閱讀 7254

以選擇排序為例,乙個能夠比較數字、字元的排序模板

public class selection {

public static void sort(comparable a){

int n = a.length;

for(int i=0;i

這個排序演算法模板適用於任何實現了comparable介面的資料型別。如封裝數字的型別interger和double,以及string和其他許多高階資料型別(file和url)。

在建立自己的資料型別時,只要實現comparable介面就能夠將其排序。要做到這一點,只需實現乙個comparableto()方法來定義目標型別的自然順序即可

總結 關於排序演算法

以下具體演算法中描述的均是公升序排序 複雜度分析請結合具體演算法 點選排序方式可到對應部落格 排序方式 平均時間複雜度 最優時間複雜度 最差時間複雜度 空間複雜度 穩定性氣泡排序 o n2 o n2 o n2 o 1 穩定快速排序 o nlogn o nlogn o n2 o logn 不穩定直接插...

關於排序演算法的小結

雖然我之前寫過一篇部落格,關於qsort和sort函式,可以快速的進行排序,但是怎麼寫排序演算法還是要懂的。今天我對排序演算法進行一次小結,結合我本學期程式設計高階班所學和在oj上刷題經驗來敘述。一 冒泡法排序 這個排序演算法真是爛大街了,我同學看見排序立刻就能打出這個演算法。雖然效率低下,時間複雜...

關於常用的排序演算法

排序演算法 平均時間複雜度 氣泡排序 o n2 選擇排序 o n2 插入排序 o n2 希爾排序 o n1.5 快速排序 o n logn 歸併排序 o n logn 堆排序o n logn 基數排序 o d n r 所謂氣泡排序 就是比較兩個相鄰的數,大的下沉小的上浮,這種方法時間複雜度為o n ...