物联网
您现在所在的位置:首页>企业动态>物联网

C语言实现二分查找的步骤

编辑:学到牛牛IT培训    发布日期: 2023-03-16 08:56:51  

二分查找(Binary Search)是一种简单而高效的搜索算法,也被称为折半查找。它适用于有序数组或有序列表的查找,并且时间复杂度为O(log n),比线性查找的O(n)更加高效。


1678927911043.jpg


C语言实现二分查找很简单,只需要以下几个步骤:


确定要查找的数组及其长度。


确定查找的值。


定义左右指针,并计算中间位置。


判断中间位置的值和要查找的值的大小关系,如果相等,则查找成功;如果小于要查找的值,则在右侧继续查找;如果大于要查找的值,则在左侧继续查找。


当左右指针重合时,如果仍未找到要查找的值,则查找失败。


下面是具体的C语言实现:



#include <stdio.h>


int binarySearch(int arr[], int len, int target) {

    int left = 0;

    int right = len - 1;

    while (left <= right) {

        int mid = (left + right) / 2;

        if (arr[mid] == target) {

            return mid;

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

            right = mid - 1;

        } else {

            left = mid + 1;

        }

    }

    return -1;

}


int main() {

    int arr[] = {1, 3, 5, 7, 9};

    int len = sizeof(arr) / sizeof(int);

    int target = 5;

    int index = binarySearch(arr, len, target);

    if (index == -1) {

        printf("未找到%d ", target);

    } else {

        printf("找到了%d,索引是%d ", target, index);

    }

    return 0;

}

在这个例子中,我们定义了一个名为binarySearch的函数,该函数用于实现二分查找。它接受三个参数:arr表示要查找的数组,len表示数组的长度,target表示要查找的目标值。函数返回查找到的目标值的下标,如果没有找到,则返回-1。


在main函数中,我们定义一个整型数组arr并初始化,然后定义了要查找的目标值target。接下来,我们调用binarySearch函数进行查找,并将结果存储在index变量中。最后根据index的值输出相应的信息。


总之,二分查找是一种常见的查找算法,在C语言中实现也非常简单。使用二分查找可以极大地提高查找效率,特别是在规模较大的数据集上。


免费试学
课程好不好,不如实地听一听

封闭学习

2

1

联系我们

电话:028-61775817

邮箱:1572396657@qq.com

地址:成都市金牛区西城国际A座8楼

  • 物联网_物联网专题新闻_物联网IOT资讯-学到牛牛
    物联网_物联网专题新闻_物联网IOT资讯-学到牛牛

    扫一扫,免费咨询

  • 物联网_物联网专题新闻_物联网IOT资讯-学到牛牛
    物联网_物联网专题新闻_物联网IOT资讯-学到牛牛

    微信公众号

  • 物联网_物联网专题新闻_物联网IOT资讯-学到牛牛
物联网_物联网专题新闻_物联网IOT资讯-学到牛牛

学一流技术,找高薪工作

物联网_物联网专题新闻_物联网IOT资讯-学到牛牛

7-24小时服务热线:

028-61775817

版权声明 网站地图

蜀ICP备2021001672号

课程问题轻松问