用c语言写应用折半查找法在一个降序序列中查找为k的元素。若查找成功,返回元素k在序列中的位置,若查找失败,返回失败信息。在序列98、86、75、64、55、48、37、22、13中查找值为22的元素并返回其位置
时间: 2023-11-12 16:08:30 浏览: 102
以下是用C语言实现在一个降序序列中应用折半查找法查找元素的代码:
```c
#include <stdio.h>
int binarySearch(int arr[], int n, int x) {
int left = 0;
int right = n - 1;
while (left <= right) {
int mid = (left + right) / 2;
if (arr[mid] == x) {
return mid;
} else if (arr[mid] > x) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return -1;
}
int main() {
int arr[] = {98, 86, 75, 64, 55, 48, 37, 22, 13};
int n = sizeof(arr) / sizeof(arr[0]);
int x = 22;
int result = binarySearch(arr, n, x);
if (result == -1) {
printf("查找失败!");
} else {
printf("元素 %d 在序列中的位置为 %d", x, result + 1);
}
return 0;
}
```
运行结果为:
```
元素 22 在序列中的位置为 8
```
可以看到,程序成功地在降序序列中应用折半查找法查找到了元素22,并返回其在序列中的位置。
阅读全文