下面我就来详细讲解一下Java实现的快速查找和二分查找算法。
一、快速查找
快速查找,也称为顺序查找,是一种最简单的查找算法。这种算法就是在待查找的一组数据中,顺序地遍历每一个数据,直到找到待查找的目标数据为止,或者遍历完数组都没有找到目标数据。
Java实现快速查找的代码如下:
public class QuickFind {
// 查找函数
public static int search(int[] arr, int target) {
for (int i = 0; i < arr.length; i++) {
if (arr[i] == target) {
return i;
}
}
return -1;
}
// 测试函数
public static void main(String[] args) {
int[] arr = {4, 3, 7, 1, 9, 2};
int target = 7;
int index = search(arr, target);
System.out.println("目标数据" + target + "的下标是:" + index);
}
}
上述代码中,search函数接收一个整型数组arr和一个整型数值target,然后顺序遍历数组arr中的每一个元素,查找是否有元素的值等于target。如果找到了目标元素,就返回该元素在数组中的下标,否则返回-1。main函数是一个测试函数,用来演示快速查找的用法。在本示例中,我们先定义了一个整型数组arr,然后查找数组中的数据7,最后打印出该元素在数组中的下标。
二、二分查找
二分查找,也称为折半查找,是一种针对有序数组的查找算法。基本思想是先在数组的中间位置进行比较,如果目标元素等于中间元素,则查找成功。如果目标元素小于中间元素,则在数组的左半部分继续查找,否则在数组的右半部分继续查找,不断缩小查找范围,直到找到目标元素为止。
Java实现二分查找的代码如下:
public class BinarySearch {
// 查找函数
public static int search(int[] arr, int target) {
int left = 0, right = arr.length - 1;
while (left <= right) {
int mid = (left + right) / 2;
if (arr[mid] == target) {
return mid;
} else if (arr[mid] < target) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return -1;
}
// 测试函数
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 7, 9};
int target = 7;
int index = search(arr, target);
System.out.println("目标数据" + target + "的下标是:" + index);
}
}
上述代码中,search函数接收一个有序整型数组arr和一个整型数值target,然后采用二分查找的方式,从数组中间位置开始查找。如果目标元素等于中间元素,则查找成功,返回中间位置下标。如果目标元素小于中间元素,则在数组的左半部分继续查找;否则在数组的右半部分继续查找。直到找到目标元素为止,或者遍历完整个数组都没有找到目标元素,返回-1。
以上就是Java实现的两种常见简单查找算法:快速查找和二分查找的攻略过程,其中包含了两个实际应用的示例说明。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java实现的两种常见简单查找算法示例【快速查找与二分查找】 - Python技术站