首页 > 基础资料 博客日记
二分查找
2023-09-05 21:45:34基础资料围观233次
本篇文章分享二分查找,对你有帮助的话记得收藏一下,看Java资料网收获更多编程知识
二分查找算法是一种在有序数组中查找特定元素的搜索算法。查找过程从数组的中间元素开始,如果中间元素正好是目标值,则查找过程结束;如果目标值大于或小于中间元素,则在数组大于或小于中间元素的那一半中查找,而不是整个数组。以下是一个二分查找的Java实现:
java
public class BinarySearch {
// Returns index of x if it is present in arr[], else return -1
int binarySearch(int arr[], int x) {
int l = 0, r = arr.length - 1;
while (l <= r) {
int m = l + (r - l) / 2;
// Check if x is present at mid
if (arr[m] == x)
return m;
// If x greater, ignore left half
if (arr[m] < x)
l = m + 1;
// If x is smaller, ignore right half
else
r = m - 1;
}
// if we reach here, then element was not present
return -1;
}
// Driver method to test above
public static void main(String args[]) {
BinarySearch bs = new BinarySearch();
int arr[] = {2, 3, 4, 10, 40};
int n = arr.length;
int x = 10;
int result = bs.binarySearch(arr, x);
if (result == -1)
System.out.println("Element not present in array");
else
System.out.println("Element found at index " + result);
}
}
这段代码首先初始化一个指向数组最左边和最右边的指针(l和r)。然后,它进入一个循环,在循环中,它会计算中间索引(m),检查该索引处的值是否等于x。如果等于,就返回该索引。否则,如果x大于中间值,就在右半部分继续查找;如果x小于中间值,就在左半部分查找。如果在整个数组中都找不到x,就返回-1。
文章来源:https://www.cnblogs.com/codingggo/p/17680921.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
标签: