java常用排序演算法

2021-08-17 08:05:55 字數 1842 閱讀 7575

1、氣泡排序

氣泡排序是一種簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果它們的順序錯誤就把它們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢「浮」到數列的頂端。

演算法描述

實現**如下:

function bubblesort(arr)

}

}

returnarr;

}

時間複雜度計算:最佳情況:t(n) = o(n)   最差情況:t(n) = o(n2)   平均情況:t(n) = o(n2)。

2、選擇排序

表現最穩定的排序演算法之一,因為無論什麼資料進去都是o(n2)的時間複雜度,所以用到它的時候,資料規模越小越好。唯一的好處可能就是不占用額外的記憶體空間了吧。理論上講,選擇排序可能也是平時排序一般人想到的最多的排序方法了吧。

選擇排序(selection-sort)是一種簡單直觀的排序演算法。它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小(大)元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。

演算法描述

n個記錄的直接選擇排序可經過n-1趟直接選擇排序得到有序結果。具體演算法描述如下:

實現**如下:

function selectionsort(arr)

}

temp = arr[i];

arr[i] = arr[minindex];

arr[minindex] = temp;

}

returnarr;

}

時間複雜度計算:最佳情況:t(n) = o(n2)  最差情況:t(n) = o(n2)  平均情況:t(n) = o(n2)。

3、插入排序

插入排序(insertion-sort)的演算法描述是一種簡單直觀的排序演算法。它的工作原理是通過構建有序序列,對於未排序資料,在已排序序列中從後向前掃瞄,找到相應位置並插入。插入排序在實現上,通常採用in-place排序(即只需用到o(1)的額外空間的排序),因而在從後向前掃瞄過程中,需要反覆把已排序元素逐步向後挪位,為最新元素提供插入空間。

演算法描述

一般來說,插入排序都採用in-place在陣列上實現。具體演算法描述如下:

實現**如下:

function insertionsort(arr)

arr[preindex+1] = current;

}

returnarr;

}

時間複雜度計算:

最佳情況:t(n) = o(n)   最壞情況:t(n) = o(n2)   平均情況:t(n) = o(n2)

java常用排序演算法

一 選擇排序 public class numbersort private static void read string args private static void print int arrays system.out.println private static void select...

java常用排序演算法

氣泡排序演算法 public static void bubbsort int a 演算法思想 由陣列頭部開始,每次比較兩個元素,順序不滿足就進行交換,當前陣列最大值 最小值 會被放在最後。一趟排序完成,然後同樣的方法進行後面的比較。插入排序演算法 public static void inssor...

java常用排序演算法

一 順序查詢 前提條件 無 從所傳入集合的一段開始,順序掃瞄,並以此將掃瞄到的值與所傳如德key值進行比較。若有值與其相等,則表明查詢成功 若掃瞄結束後仍沒有值與key值相等,則表明查詢失敗。示例 public int seqsearch int r,int k return 1 缺點 執行效率低 ...