C语言中的二分查找及其实例分析

下面是用 C 编程语言实现的二进制搜索算法的示例:

 

'''c

 

#include <stdio.h>

 

int binarySearch(int arr[], int low, int high, int target) {

    while (low <= high) {

        int mid = low + (high - low) / 2;

 

        if (arr[mid] == target) {

            return mid; // Found the target at index mid

        } else if (arr[mid] < target) {

            low = mid + 1; // Target is in the right half

        } else {

            high = mid - 1; // Target is in the left half

        }

    }

 

    return -1; // Target not found

}

 

int main() {

    int arr[] = {2, 5, 8, 12, 16, 23, 38, 56, 72, 91};

    int n = sizeof(arr) / sizeof(arr[0]);

    int target = 23;

 

    int result = binarySearch(arr, 0, n - 1, target);

 

    if (result == -1) {

        printf("Target not found in the array.\n");

    } else {

        printf("Target found at index %d.\n", result);

    }

 

    return 0;

}

 

'''

 

在此示例中,“binarySearch”函数采用数组“arr”、下限“low”、上限“high”和要搜索的目标值。它对排序后的数组执行二进制搜索以查找目标值。该函数使用 while 循环将搜索空间重复分成两半,直到找到目标或搜索空间用尽。

 

该算法假定输入数组按升序排序。它首先计算搜索空间的中间索引(“mid”)。如果中间元素等于目标,则该函数返回索引。如果中间元素小于目标,则搜索空间将缩小到右半部分。如果中间元素大于目标,则搜索空间将缩小到左半部分。此过程一直持续到找到目标或搜索空间为空。

 

在“main”函数中,使用示例数组“{2, 5, 8, 12, 16, 23, 38, 56, 72, 91}”进行演示。目标值设置为 23。调用“binarySearch”函数,并检查结果。如果结果为 -1,则表示在数组中找不到目标值。否则,将打印找到目标值的索引。

 

在这种特定情况下,输出将是:

 

'''

 Target found at index 5.

'''

 

这演示了 C 语言中二叉搜索算法的基本实现和用法。

 

  • 15
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BlurryFace36549

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值