实现折半查找算法的非递归和递归算法。注:算法实现时可以把元素类型均简化为int型。数据结构C语言
时间: 2024-04-29 18:26:43 浏览: 96
好的,关于实现折半查找算法的非递归和递归算法,我可以为您提供以下C语言代码:
非递归算法:
```c
int binarySearch(int arr[], int n, int x)
{
int left = 0, right = n - 1;
while (left <= right) {
int mid = left + (right - left) / 2;
if (arr[mid] == x)
return mid;
else if (arr[mid] < x)
left = mid + 1;
else
right = mid - 1;
}
return -1;
}
```
递归算法:
```c
int binarySearch(int arr[], int left, int right, int x)
{
if (left > right)
return -1;
int mid = left + (right - left) / 2;
if (arr[mid] == x)
return mid;
else if (arr[mid] < x)
return binarySearch(arr, mid + 1, right, x);
else
return binarySearch(arr, left, mid - 1, x);
}
```
以上代码可以实现折半查找算法的非递归和递归算法,元素类型为int型。希望可以帮助到您。
阅读全文