以下是一个示例代码,漂亮的实现了使用C语言的二分法查找一个数:
#includeint 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处找到。