本关任务:采用二分查找算法实现查找有序数组里大于等于 x 的第一个数字。用c语言
时间: 2023-12-14 15:32:32 浏览: 49
以下是用C语言实现查找有序数组里大于等于x的第一个数字的二分查找算法:
```c
#include <stdio.h>
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) {
if (mid == 0 || arr[mid - 1] < x) {
return mid;
} else {
right = mid - 1;
}
} else {
left = mid + 1;
}
}
return -1;
}
int main() {
int arr[] = {1, 3, 5, 7, 9, 11};
int n = sizeof(arr) / sizeof(arr[0]);
int x = 6;
int index = binarySearch(arr, n, x);
if (index == -1) {
printf("数组中没有大于等于%d的数字", x);
} else {
printf("第一个大于等于%d的数字的下标为%d", x, index);
}
return 0;
}
```