C语言怎么实现二分法查找算法

   2025-02-15 4610
核心提示:二分法查找算法是一种高效的查找算法,适用于已经排好序的数组。下面是C语言实现二分法查找算法的代码:#include stdio.h// 二分

二分法查找算法是一种高效的查找算法,适用于已经排好序的数组。下面是C语言实现二分法查找算法的代码:

#include <stdio.h>// 二分法查找算法int binarySearch(int arr[], int left, int right, int target) {    while (left <= right) {        int mid = left + (right - left) / 2;        // 找到目标值        if (arr[mid] == target) {            return mid;        }        // 目标值在右半边        if (arr[mid] < target) {            left = mid + 1;        }        // 目标值在左半边        else {            right = mid - 1;        }    }    // 没有找到目标值    return -1;}int main() {    int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};    int target = 6;    int n = sizeof(arr) / sizeof(arr[0]);    int result = binarySearch(arr, 0, n - 1, target);    if (result == -1) {        printf("目标值 %d 不存在数组中。\n", target);    } else {        printf("目标值 %d 在数组中的索引为 %d。\n", target, result);    }    return 0;}

在上述代码中,binarySearch 函数实现了二分法查找算法。它通过传入的参数 leftright 来确定当前查找范围的左右边界,然后通过计算中间位置 mid 来确定需要查找的值在左半边还是右半边。如果找到目标值,就返回其索引;如果没有找到目标值,就返回 -1。

main 函数中,我们定义了一个有序数组 arr,并设定了目标值 target。然后,我们调用 binarySearch 函数来查找目标值在数组中的索引,并根据返回结果进行输出。

 
 
更多>同类维修知识
推荐图文
推荐维修知识
点击排行
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  网站留言