Java中的常用演算法
阿新 • • 發佈:2021-01-23
二分查詢演算法
演算法思路
二分查詢演算法也稱為折半查詢演算法,要求待查詢的序列有序,每次查詢都去中間位置的值與待查關鍵字進行比較,如果中間位置的值比待查關鍵字大,則在序列的左半部分繼續查詢,反之亦然,直到查詢到關鍵字為止,否為在序列中沒有待查關鍵字。
Java程式碼實現
public static int binarySearch(int[] array, int aim) {
int start = 0;
int end = array.length - 1;
int mid;
while (start<end){
mid= (end-start)/2+start;//中間位置
if (array[mid]==aim){
return mid;
}else if(array[mid]>aim){
end=mid-1; //向左查詢
}else{
start=mid+1; //向右查詢
}
}
return -1;
}
氣泡排序演算法
氣泡排序(Bubble Sort)演算法,在重複訪問要排序的元素列時,會依次比較相鄰兩個元素,如果左邊大於右邊,兩者就交換位置,如此重複,直到沒有相鄰的元素需要交換位置,排序就完成。
演算法 | 最好情況 | 最壞情況 | 時間複雜度 | 空間複雜度 | 穩定性 |
---|---|---|---|---|---|
氣泡排序 | O(n) | O(n^2) | O(n^2) | O(1) | 穩定 |
Java程式碼實現
public static int[] bubbleSort(int[] array){
//外層迴圈控制排序趟數
for (int i = 0; i < array.length; i++) {
//內層迴圈控制每一趟排序次數
for (int j = 0; j < array.length-i-1; j++) {
if (array[j]>array[ j+1]){
int temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
}
}
return array;
}