二分迭代查找逻辑c语言代码实现
时间: 2024-09-24 13:05:13 浏览: 31
二分迭代查找也称为折半查找,是一种在有序数组中查找特定元素的高效算法。以下是C语言的一个基本实现:
```c
#include <stdio.h>
// 定义二分查找函数
int binarySearch(int arr[], int left, int right, int target) {
while (left <= right) {
int mid = left + (right - left) / 2; // 计算中间位置
if (arr[mid] == target) { // 如果找到目标值
return mid;
} else if (arr[mid] < target) { // 如果中间值小于目标,缩小左边界
left = mid + 1;
} else { // 中间值大于目标,缩小右边界
right = mid - 1;
}
}
// 没有找到,返回-1表示目标不在数组中
return -1;
}
int main() {
int arr[] = {1, 3, 5, 7, 9, 11, 13};
int n = sizeof(arr) / sizeof(arr[0]);
int target = 7;
int result = binarySearch(arr, 0, n - 1, target);
if (result != -1)
printf("Element found at index %d\n", result);
else
printf("Element not found in the array.\n");
return 0;
}
```
在这个例子中,`binarySearch`函数接收一个排序后的整数数组、起始索引(left)、结束索引(right)以及要查找的目标值(target)。如果找到目标值,返回其索引;否则,在数组中不存在该目标时返回-1。
阅读全文