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...