1.给出在一个递增有序表A中采用二分查找算法查找算法查找值为x的元素的递归算法。 (必做题)C语言程序
时间: 2024-03-07 10:49:49 浏览: 18
下面是在一个递增有序表 `A` 中采用二分查找算法查找值为 `x` 的元素的递归算法的 C 语言程序:
```c
#include <stdio.h>
int binary_search(int A[], int left, int right, int x) {
if (left > right) {
return -1;
}
int mid = (left + right) / 2;
if (A[mid] == x) {
return mid;
} else if (A[mid] < x) {
return binary_search(A, mid + 1, right, x);
} else {
return binary_search(A, left, mid - 1, x);
}
}
int main() {
int A[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int n = sizeof(A) / sizeof(A[0]);
int x = 6;
int result = binary_search(A, 0, n - 1, x);
if (result == -1) {
printf("元素 %d 不在数组中\n", x);
} else {
printf("元素 %d 在数组中的下标为 %d\n", x, result);
}
return 0;
}
```
输出结果为:
```
元素 6 在数组中的下标为 5
```
二分查找算法是一种在有序数组中查找元素的高效算法,其基本思想是将数组分成两半,每次将要查找的值与数组中间的值比较,如果相等,返回中间值的下标;如果要查找的值比中间值大,则在右半部分继续查找;如果要查找的值比中间值小,则在左半部分继续查找。以此类推,直到找到要查找的值或者确定要查找的值不在数组中为止。