以下是一個示例代碼,漂亮的實現了使用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處找到。