1、查找算法
1. 顺序查找
原理:从列表的一端开始,逐个检查每个元素,直到找到所需元素或检查完所有元素。
Java代码示例:
public class SequentialSearch {
public static int sequentialSearch(int[] array, int target) {
for (int i = 0; i < array.length; i++) {
if (array[i] == target) {
return i; // 找到目标,返回其索引
}
}
return -1; // 未找到目标
}
public static void main(String[] args) {
int[] array = {1, 3, 5, 7, 9};
int target = 5;
int index = sequentialSearch(array, target);
System.out.println("元素 " + target + " 在数组中的索引为: " + index);
}
}
2. 二分查找
原理:在有序数组中,每次与中间元素比较,缩小查找范围至左半部分或右半部分,直到找到目标或范围缩小至空。
Java代码示例:
public class BinarySearch {
public static int binarySearch(int[] array, int target) {
int low = 0;
int high = array.length - 1;
while (low <= high) {
int mid = low + (high - low) / 2;
if (array[mid] == target) {
return mid; // 找到目标,返回其索引
} else if (array[mid] < target) {
low = mid + 1; // 在右半部分继续查找
} else {
high = mid - 1; // 在左半部分继续查找
}
}
return -1; // 未找到目标
}
public static void main(String[] args) {
int[] array = {1, 3, 5, 7, 9};
int target = 5;
int index = binarySearch(array, target);
System.out.println("元素 " + target + " 在数组中的索引为: " + index);
}
}
2、排序算法
1. 冒泡排序
原理:重复地遍历数组,比较每对相邻的项,如果它们的顺序错误就把它们交换过来。
Java代码示例:
public class BubbleSort {
public static void bubbleSort(int[] array) {
int n = array.length;
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (array[j] > array[j + 1]) {
// 交换位置
int temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
}
public static void main(String[] args) {
int[] array = {64, 34, 25, 12, 22, 11, 90};
bubbleSort(array);
System.out.println("排序后的数组: ");
for (int num : array) {
System.out.print(num + " ");
}
}
}
2. 选择排序
原理:在未排序序列中找到最小(或最大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(或最大)元素,然后放到已排序序列的末尾。
Java代码示例:
public class SelectionSort {
public static void selectionSort(int[] array) {
for (int i = 0; i < array.length - 1; i++) {
int minIndex = i;
for (int j = i + 1; j < array.length; j++) {
if (array[j] < array[minIndex]) {
minIndex = j;
}
}
// 交换位置
int temp = array[minIndex];
array[minIndex] = array[i];
array[i] = temp;
}
}
public static void main(String[] args) {
int[] array = {64, 34, 25, 12, 22, 11, 90};
selectionSort(array);
System.out.println("排序后的数组: ");
for (int num : array) {
System.out.print(num + " ");
}
}
}