java二分排序法
时间: 2023-07-01 12:26:24 浏览: 52
Java 中的二分查找,也称为折半查找,是一种常用的查找算法。它的基本思想是:对于一个已经排好序的数组,每次将要查找的值与数组中间位置的值进行比较,如果相等就返回中间位置的下标,如果小于中间值则在左半边继续查找,否则在右半边继续查找,如此递归直到找到目标值或者确定目标值不在数组中。
以下是 Java 中的二分查找实现代码:
```java
public static int binarySearch(int[] arr, int target) {
int left = 0;
int right = arr.length - 1;
while (left <= right) {
int mid = (left + right) / 2;
if (arr[mid] == target) {
return mid;
} else if (arr[mid] > target) {
right = mid - 1;
} else {
left = mid + 1;
}
}
return -1; // 没有找到目标值
}
```
这里的 `arr` 是待搜索的数组,`target` 是要查找的目标值。`left` 和 `right` 分别是数组的左右边界,`mid` 是中间位置的下标。在每一次循环中,我们都将 `target` 与 `arr[mid]` 进行比较,如果相等就返回 `mid`,如果 `target` 小于 `arr[mid]`,则说明 `target` 可能在左半边,所以将 `right` 指针移动到 `mid - 1` 的位置;否则说明 `target` 可能在右半边,将 `left` 指针移动到 `mid + 1` 的位置。如果最终没有找到目标值,就返回 `-1`。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)