Java排序演算法鞏固

2021-08-24 20:43:48 字數 1209 閱讀 4761

1)氣泡排序

/**

* 氣泡排序,時間複雜度 o(n^2) 最優 o(n) 最差 o(n^2) 穩定

* @param arr

*/public static void bubblesort(int arr)

}} }

2)選擇排序

/**

* 選擇排序,時間複雜度 o(n^2) 最優 o(n^2) 最差 o(n^2) 不穩定

* @param arr

* @param start

* @param end

*/public static void selectsort(int arr)else

}for(int j=i-1;j>=left;j--)

//插入牌

arr[left]=get;

} }

5)快速排序

/*** 快速排序,時間複雜度 o(nlogn) 最差情況為o(n^2),最優 o(logn)

* @param arr

*/public static void quicksort(int arr)

public static void quicksort(int arr,int start,int end)

int index = arr[start];

int i= start;

int j = end;

while(iindex)

if(i6)歸併排序

//歸併排序 ,時間複雜度 o(nlogn) 最差情況為 o(nlogn),最優 o(nlogn) 穩定

public static void mergesort(int arr)

public static void mergesort(int arr, int start, int end)

//依次拿出堆頂元素

int n = arr.length;

int temp = new int[arr.length];

while(n>0)

for(int j=0;jn&&k2>n)//已經沒有子節點,自己已經是葉子了

return;

int child_left = integer.max_value;

int child_right = integer.max_value;

if(k1參考資料:

JAVA知識鞏固

執行緒池 1 執行緒是稀缺資源,使用執行緒池可以減少建立和銷毀執行緒的次數,每個工作執行緒都可以重複使用。2 可以根據系統的承受能力,調整執行緒池中工作執行緒的數量,防止因為消耗過多記憶體導致伺服器崩潰。執行緒池的實現原理 提交乙個任務到執行緒池中,執行緒池的處理流程如下 1 判斷執行緒池裡的核心執...

Android探索與鞏固(快速排序演算法)

年後放假回來得了假期症候群,懶勁上來了,之前一直想更新的部落格一拖再拖,再拖下去自己都不好意思了。前幾天看了看各個大廠的安卓面試題,發現大廠的安卓面試都會在最後考一道快速排序演算法,演算法對於我現在來說不太熟練,就跟著網上的敲了一下,就在這裡做下總結。網路上有總結快速排序演算法的複雜度為nlogn。...

java排序演算法

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