c语言

如何使用c语言二分法查找一个数

小亿
91
2024-02-20 15:48:26
栏目: 编程语言

以下是一个示例代码,漂亮的实现了使用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处找到。

0
看了该问题的人还看了