6.1氣泡排序
private static void bubbleSort(int[] arr) {
// 外迴圈: 控制比較的輪數
for (int i = 0; i < arr.length - 1; i++) {
// 內迴圈: 控制比較的次數
// -1避免索引越界, -i提高效率
for (int j = 0; j < arr.length - 1 - i; j++) {
// j = 0 1
// j = 1 2
// j = 2 3
// j = 3 4
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
6.2選擇排序
public static void selectSort(int[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
for (int j = i + 1; j < arr.length; j++) {
if (arr[i] > arr[j]) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
6.3基本查詢
6.4二分查詢(折半查詢)
public static int binarySearch(int num, int[] arr) {
int min = 0;
int max = arr.length - 1;
while (min <= max) {
// 計算中間索引
int mid = (min + max) / 2;
// 比對
if (num > arr[mid]) {
min = mid + 1;
} else if (num < arr[mid]) {
max = mid - 1;
} else {
return mid;
}
}
return -1;
}