数据结构c语言二分查找代码
时间: 2023-12-26 18:27:36 浏览: 84
以下是C语言中实现二分查找的代码示例:
1. 递归实现二分查找:
```c
int binarySearchRecursive(int arr[], int low, int high, int target) {
if (low <= high) {
int mid = low + (high - low) / 2;
if (arr[mid] == target) {
return mid;
}
else if (arr[mid] > target) {
return binarySearchRecursive(arr, low, mid - 1, target);
}
else {
return binarySearchRecursive(arr, mid + 1, high, target);
}
}
return -1; // 如果未找到目标元素,返回-1
}
```
2. 非递归实现二分查找:
```c
int binarySearchIterative(int arr[], int low, int high, int target) {
while (low <= high) {
int mid = low + (high - low / 2;
if (arr[mid] == target) {
return mid;
}
else if (arr[mid] > target) {
high = mid - 1;
}
else {
low = mid + 1;
}
}
return -1; // 如果未找到目标元素,返回-1
}
```
这两种方法都是基于有序数组进行二分查找。递归实现通过不断缩小查找范围来找到目标元素,而非递归实现则使用循环来实现相同的功能。
阅读全文