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

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语言中实现也非常简单。使用二分查找可以极大地提高查找效率,特别是在规模较大的数据集上。


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

推荐阅读

  • Qt开发者的AI进化论:当传统GUI框架遇见智能时代

    国产午夜鲁丝片AV无码蜜臀,福利免费观看午夜体检区,人妻少妇精品无码专区APP,伊人久久大香线蕉成人综合网,国产妓女在线观看视频,亚洲成a人片在线观看尤物,亚洲精品国产一二三无码AV,亚汌国产一区二区三区

  • QT能被应用在人工智能领域有哪些应用

    国产午夜鲁丝片AV无码蜜臀,福利免费观看午夜体检区,人妻少妇精品无码专区APP,伊人久久大香线蕉成人综合网,国产妓女在线观看视频,亚洲成a人片在线观看尤物,亚洲精品国产一二三无码AV,亚汌国产一区二区三区

  • 什么学校学计算机编程比较好

    国产午夜鲁丝片AV无码蜜臀,福利免费观看午夜体检区,人妻少妇精品无码专区APP,伊人久久大香线蕉成人综合网,国产妓女在线观看视频,亚洲成a人片在线观看尤物,亚洲精品国产一二三无码AV,亚汌国产一区二区三区

  • 计算机专业的就业难度怎么样?

    国产午夜鲁丝片AV无码蜜臀,福利免费观看午夜体检区,人妻少妇精品无码专区APP,伊人久久大香线蕉成人综合网,国产妓女在线观看视频,亚洲成a人片在线观看尤物,亚洲精品国产一二三无码AV,亚汌国产一区二区三区

封闭学习

2

1

18180749853

蜀ICP备2021001672号

在线咨询 免费试听VIP课程