有序数组的二分查找算法的实现
时间: 2023-09-21 13:04:50 浏览: 101
二分查找是一种基于比较的查找算法,适用于有序数组。实现步骤大致如下:
1. 定义两个指针,一个指向数组的起始位置,一个指向数组的末尾位置。
2. 计算数组的中间位置,即 mid = (left + right) / 2。
3. 用中间位置的值与需要查找的值进行比较。
a. 如果中间值等于查找值,则查找成功,返回中间位置。
b. 如果中间值大于查找值,则说明需要查找的值在左半部分,将右指针移动到 mid -1 处。
c. 如果中间值小于查找值,则说明需要查找的值在右半部分,将左指针移动到 mid + 1 处。
4. 重复步骤2~3直到找到需要查找的值或者左指针大于右指针,查找失败。
下面是二分查找算法的 C++ 代码实现:
int binarySearch(int arr[], int left, int right, int target) {
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[] 表示需要查找的数组,left 和 right 分别表示数组的起始位置和末尾位置,target 表示需要查找的目标值。如果查找成功,返回目标值在数组中的索引位置,否则返回 -1。
阅读全文