折半查找法c语言
时间: 2023-07-02 21:13:03 浏览: 128
折半查找法(二分查找)是一种在有序数组中查找特定元素的算法。它的基本思想是将查找区间按照中点分成两部分,然后判断目标元素在哪一部分中,然后递归地在对应的一部分中查找,直到找到目标元素或者查找区间为空为止。
以下是使用 C 语言实现折半查找法的示例代码:
```c
int binary_search(int arr[], int n, int target) {
int left = 0, right = n - 1;
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;
}
}
return -1; // 没有找到目标元素
}
```
其中,`arr` 表示有序数组,`n` 表示数组的长度,`target` 表示目标元素。变量 `left` 和 `right` 分别表示查找区间的左右边界。在每次循环中,先计算出中点 `mid`,然后根据 `arr[mid]` 与 `target` 的大小关系,更新查找区间的左右边界。如果 `arr[mid]` 等于 `target`,则直接返回 `mid`。如果最终查找区间为空,说明没有找到目标元素,返回 `-1`。
阅读全文