使用递归查找表代码怎么写
时间: 2024-02-28 11:55:37 浏览: 14
下面是一个使用递归查找表的示例代码,假设查找表中的数据已经按照升序排列:
```
int recursiveBinarySearch(int arr[], int left, int right, int x) {
if (right >= left) {
int mid = left + (right - left) / 2;
if (arr[mid] == x)
return mid;
if (arr[mid] > x)
return recursiveBinarySearch(arr, left, mid - 1, x);
return recursiveBinarySearch(arr, mid + 1, right, x);
}
return -1;
}
```
这个函数的参数说明如下:
- `arr[]`:查找表数组;
- `left`:查找区间的左边界;
- `right`:查找区间的右边界;
- `x`:待查找的数据。
使用方法如下:
```
int arr[] = {2, 3, 4, 10, 40};
int n = sizeof(arr) / sizeof(arr[0]);
int x = 10;
int result = recursiveBinarySearch(arr, 0, n - 1, x);
if (result == -1)
printf("Element is not present in array");
else
printf("Element is present at index %d", result);
```
这个例子中,我们使用递归查找表在一个有序数组中查找数字10的位置,如果找到了就返回该数字在数组中的下标,如果没有找到就返回-1。