📅  最后修改于: 2023-12-03 14:58:27.014000             🧑  作者: Mango
本题要求实现一个函数,该函数使用二分查找算法在有序整数数组中查找给定值,并返回找到的元素的索引,若找不到则返回-1。要求算法的时间复杂度为O(logN)。
int binarySearch(int[] arr, int target)
int[] arr = {2, 4, 6, 8, 10};
int target = 4;
binarySearch(arr, target); // 输出: 1
二分查找是一种高效的查找算法,它利用数组的有序性将查找区间逐渐缩小。具体步骤如下:
public class BinarySearch {
public static int binarySearch(int[] arr, int target) {
int left = 0;
int right = arr.length - 1;
while (left <= right) {
int middle = left + (right - left) / 2;
if (arr[middle] == target) {
return middle;
}
if (arr[middle] > target) {
right = middle - 1;
} else {
left = middle + 1;
}
}
return -1;
}
}
注意:以上代码是使用Java语言实现的二分查找算法。你可以根据需要使用其他编程语言来实现该算法。