java编写一个程序,实现二分查找算法,查找一个给定的整数是否在无序数组中。
时间: 2024-04-16 09:29:33 浏览: 139
二分查找算法
要在无序数组中实现二分查找算法,我们需要先对数组进行排序,然后再进行二分查找。下面是一个使用二分查找算法在无序数组中查找给定整数的Java程序示例:
```java
import java.util.Arrays;
public class BinarySearch {
public static boolean binarySearch(int[] arr, int target) {
Arrays.sort(arr); // 对数组进行排序
int left = 0;
int right = arr.length - 1;
while (left <= right) {
int mid = left + (right - left) / 2;
if (arr[mid] == target) {
return true; // 找到目标元素,返回true
} else if (arr[mid] < target) {
left = mid + 1; // 目标元素在右半部分,继续在右半部分查找
} else {
right = mid - 1; // 目标元素在左半部分,继续在左半部分查找
}
}
return false; // 没有找到目标元素,返回false
}
public static void main(String[] args) {
int[] arr = {9, 5, 3, 11, 7, 1};
int target = 5;
boolean result = binarySearch(arr, target);
if (result) {
System.out.println("目标元素在数组中");
} else {
System.out.println("目标元素不在数组中");
}
}
}
```
在上面的示例中,我们首先使用`Arrays.sort()`方法对无序数组`arr`进行排序。然后,我们使用与有序数组相同的二分查找算法来查找目标整数`target`。如果找到目标元素,则返回`true`,否则返回`false`。
在`main`方法中,我们创建一个无序数组`arr`和一个目标整数`target`,然后调用`binarySearch`方法进行查找,并根据返回结果输出相应的消息。
运行上述程序,将会输出:
```
目标元素在数组中
```
这表示目标元素5在无序数组中。请注意,在使用二分查找算法之前,我们需要先对无序数组进行排序。
阅读全文