用C语言写二分查找代码
时间: 2023-07-19 16:18:28 浏览: 94
以下是使用C语言实现二分查找的代码:
```c
int binary_search(int arr[], int n, int x) {
int low = 0;
int high = n - 1;
int mid;
while (low <= high) {
mid = (low + high) / 2;
if (arr[mid] == x) {
return mid;
} else if (arr[mid] < x) {
low = mid + 1;
} else {
high = mid - 1;
}
}
return -1;
}
```
该函数需要传入一个数组 `arr`,数组长度 `n`,和要查找的元素 `x`。函数返回值为查找到的元素下标,如果找不到则返回 -1。
函数首先初始化 `low` 和 `high` 分别为数组的第一个元素下标和最后一个元素下标。然后在每一次迭代中,计算出中间元素的下标 `mid`,并与要查找的元素 `x` 进行比较。如果相等,则返回 `mid`;如果 `arr[mid]` 小于 `x`,则说明需要在数组的后半部分继续查找,将 `low` 更新为 `mid + 1`;如果 `arr[mid]` 大于 `x`,则说明需要在数组的前半部分继续查找,将 `high` 更新为 `mid - 1`。如果最终没有找到元素,则返回 -1。
希望这个代码可以帮助到您。
阅读全文