Java 排序演算法

2021-08-07 21:33:42 字數 2626 閱讀 2986

評價演算法的指標是:時間、空間和穩定性。

演算法特點:

演算法名稱 時間複雜度 空間複雜度 穩定性

直接插入 o(n2) o(1) √

希爾排序 n→∞ o(n(log2n2)) o(1) ×

氣泡排序 o(n2) o(1) √

快速排序 o(nlog2n)

好:o(log2n)

壞:o(n)

× 選擇排序 o(n2) o(1)

演算法本身是穩定的

採用「交換記錄」策略會造成不穩定現象的產生

堆排序 o(nlog2n) o(1) ×

歸併排序 o(nlog2n) o(n) √

基數排序 o(d(n+rd)) o(n+rd) √

直接插入排序,是當待排序的記錄個數比較少並且排序序列的關鍵字基本有序時,效率較高。

通過構建有序序列,對於未排序的資料,在已排序序列中從後向前掃瞄,找到相應的位置並插入。(在具體實現的時候,可以將list[i]從前向後插入比較,也可以從後向前插入比較。這裡採用的是從後向前插入比較)

1

public

class main

14       j = j-1;

15       }

16     }

17return

list;

18   }

1920

public

static

void main(string args) ;

22int result = new

int[list.length];

23     result = insert_sort(list);

24     system.out.println("插入排序:");

25for (int i = 0; i < result.length; i++)

28   }

29 }

希爾排序又稱「縮小增量排序」,也是插入排序的一種。希爾排序實質上是採用分組插入的方法。先將待排序記錄序列分割成幾組,對每組進行直接插入,然後增加每組的資料量重新分組。就這樣經過幾次分組排序之後,整個序列基本有序,最後再進行一次直接插入排序。

1

/*希爾排序*/

2public

static

int shell_sort(int list)

17           k = k - group;

18         }

19       j = j + group;   

20       }

21     }

22group = group / 2;

23   }

24return list;

25 }

簡單選擇排序

1

/*簡單選擇排序*/

2public

static

int select_sort(int list)

10 }

1112

return

list;

13 }

1

/*氣泡排序*/

2public

static

int bubble_sort(int list)

11 }

12 }

13return

list;

14 }

```

1 /*快速排序*/

2public static int quick_sort(int list,int

left,int

right)

7 temp = list[left];

8 low = left;

9 high = right;

1011

while (left

< right)

15 list[left] = list[right];

16while (left

< right && list[left] <= temp)

19 list[right] = temp;

20 quick_sort(list, low, left - 1);

21 quick_sort(list, left + 1, high);

22 }

23 return list;

24 }

1 /*歸併排序*/

2public static int merge(int left,int right) else

1415 }

1617 return result;

1819 }

java排序演算法

1.定義 通過比較來確定輸入序列1,a 2,a n 的元素間相對次序的排序演算法稱為比較排序演算法。2.演算法解釋 1 選擇排序 選擇排序的基本思想是對待排序的記錄序列進行n 1遍的處理,第i遍處理是將l i.n 中最小者與l i 交換位置。這樣,經過i遍處理之後,前i個記錄的位置已經是正確的了。2...

Java排序演算法

回顧一下排序演算法 稍微地設計一下基礎類 插入排序 插入排序 insertion sort 的基本思想是 每次將乙個待排序的記錄,按其關鍵字大小插入到前面已經排好序的子檔案中的適當位置,直到全部記錄插入完成為止。氣泡排序 氣泡排序 bubblesort 的基本概念是 依次比較相鄰的兩個數,將小數放在...

java 排序演算法

氣泡排序 public void bubblesort int array 選擇排序 選擇排序 public void selectsort int a else 判斷 j 1 或者 就是第乙個小於等於temp資料的位置 datas j 1 temp 快速排序 快速排序 param datas pu...