以下是一个示例代码,漂亮的实现了使用C语言的二分法查找一个数:
#include <stdio.h>
int binarySearch(int arr[], int n, int target) {
int left = 0;
int right = n - 1;
while (left <= right) {
int mid = left + (right - left) / 2;
if (arr[mid] == target) {
return mid;
} else if (arr[mid] < target) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return -1; // 返回-1表示未找到目标数
}
int main() {
int arr[] = {2, 4, 6, 8, 10, 12, 14, 16, 18};
int n = sizeof(arr) / sizeof(arr[0]);
int target = 10;
int result = binarySearch(arr, n, target);
if (result != -1) {
printf("目标数 %d 找到在索引 %d\n", target, result);
} else {
printf("目标数 %d 未找到\n", target);
}
return 0;
}
您可以将要查找的数组和目标数传递给binarySearch
函数,并在函数返回的索引位置找到目标数。如果未找到目标数,则函数将返回-1。在上面的示例中,目标数10在数组中的索引3处找到。