Java中常用的搜索算法有线性搜索、二分搜索和哈希搜索。其中,线性搜索适合小数据集,二分搜索适合有序列表且数据规模较大的情况,哈希搜索适合处理大型数据结构。以下示例代码可供参考:
线性搜索示例代码:
public static int linearSearch(int[] arr, int target) {
for (int i = 0; i < arr.length; i++) {
if (arr[i] == target) {
return i;
}
}
return -1;
}
二分搜索示例代码:
public static int binarySearch(int[] arr, int target) {
int left = 0;
int right = arr.length - 1;
while (left <= right) {
int mid = left + (right - left) / 2;
if (arr[mid] == target) {
return mid;
} else if (arr[mid] < target) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return -1;
}
哈希搜索示例代码:
public static boolean hashSearch(int[] arr, int target) {
Set<Integer> set = new HashSet<>();
for (int num : arr) {
set.add(num);
}
return set.contains(target);
}
应用场景方面,线性搜索适用于简单数据结构的查找;二分搜索适用于二分查找、查找最值、查找特殊元素等;哈希搜索适用于去重、快速查找等。