1. 排序算法
1.1 冒泡排序(Bubble Sort)
-
原理:通过相邻元素的比较和交换,将较大的元素逐步“冒泡”到数组末尾。
-
算法描述:
public static void bubbleSort(int[] arr) { int temp = 0; int size = arr.length; for (int i = 0; i < size - 1; i++) { for (int j = 0; j < size - 1 - i; j++) { if (arr[j] > arr[j + 1]) { temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } }
1.2 选择排序(Selection Sort)
-
原理:每次从未排序部分选择最小的元素,放到已排序部分的末尾。
-
算法描述:
public static void selectSort(int[] numbers) { int size = numbers.length; int temp = 0; for (int i = 0; i < size; i++) { int k = i; for (int j = size - 1; j > i; j--) { if (numbers[j] < numbers[k]) { k = j; } } temp = numbers[i]; numbers[i] = numbers[k]; numbers[k] = temp; } }
1.3 调用API排序方法
-
使用
Arrays.sort()
方法对数组进行排序。int[] arr = {7, 9, 4, 8, 3, 5}; Arrays.sort(arr);
2. 查找算法
2.1 顺序查找(Linear Search)
-
原理:从数组的起始位置逐个比较,直到找到目标值。
-
算法描述:
public static int orderSearch(int[] arr, int des) { for (int i = 0; i < arr.length; i++) { if (des == arr[i]) { return i; } } return -1; }
2.2 二分查找(Binary Search)
-
原理:在有序数组中,通过不断将数组分为两半,逐步缩小查找范围。
-
要求:数组必须是有序的。
-
算法描述:
public static int binarySearch(Integer[] srcArray, int des) { int low = 0; int high = srcArray.length - 1; while (low <= high) { int middle = (high + low) / 2; if (des == srcArray[middle]) { return middle; } else if (des < srcArray[middle]) { high = middle - 1; } else { low = middle + 1; } } return -1; }
五、总结
本章主要介绍了以下内容:
-
冒泡排序和选择排序的原理及实现。
-
使用API进行数组排序的方法。
-
顺序查找和二分查找的原理及实现。
知识点
│ ├── 排序算法
│ │ ├── 冒泡排序
│ │ │ ├── 原理
│ │ │ └── 实现
│ │ ├── 选择排序
│ │ │ ├── 原理
│ │ │ └── 实现
│ │ └── 调用API排序
│ └── 查找算法
│ ├── 顺序查找
│ │ ├── 原理
│ │ └── 实现
│ └── 二分查找
│ ├── 原理
│ ├── 要求