【发布时间】:2020-05-18 09:53:09
【问题描述】:
我必须创建一个有序的数字数组。接下来,我应该输入一个数字并使用二分搜索找到它。
我看到有一个很简单的方法(java.util.Arrays.binarySearch(int[] a, int key)),但是我不能用。
如果没有这种方法,我如何进行二分搜索?感谢您的支持。
例如,我有这个数组:A = [1, 5, 10, 21, 30, 50] 我必须找到数字 30。
【问题讨论】:
标签: java
我必须创建一个有序的数字数组。接下来,我应该输入一个数字并使用二分搜索找到它。
我看到有一个很简单的方法(java.util.Arrays.binarySearch(int[] a, int key)),但是我不能用。
如果没有这种方法,我如何进行二分搜索?感谢您的支持。
例如,我有这个数组:A = [1, 5, 10, 21, 30, 50] 我必须找到数字 30。
【问题讨论】:
标签: java
通过以下方法传递你的数组和要搜索的数字
public int binarySearch(int arr[], int num)
{
int left = 0, right = arr.length - 1;
while (left <= right) {
int middle = left + (right - l) / 2;
if (arr[middle] == num)
return middle;
if (arr[middle] < num)
left = middle + 1;
else
right = middle - 1;
}
return -1;
}
也可以在https://www.geeksforgeeks.org/binary-search/找到很好的解释
【讨论】: