前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >11-二分查找算法

11-二分查找算法

作者头像
lexingsen
发布2022-02-25 08:59:36
1210
发布2022-02-25 08:59:36
举报
文章被收录于专栏:乐行僧的博客
思想:

利用有序的特点,平均意义上,每次查找缩减一般的查找规模,进而提高查找速度。

关键点:
  • 存储结构为顺序存储,且关键字之间有序
  • l <= r,不能l < r
  • 中间下标计算溢出问题,m = (l + r)/2 可能会溢出,使用减法,m = (r - l)/2 + l
代码:
代码语言:javascript
复制
#include <stdio.h>

int BinSearch(int *a, int n, int t) {
    int l = 0;
    int r = n - 1;
    while (l <= r) {
        int m = (r - l) / 2 + l;
        if (a[m] == t) {
            return m;
        } else if (a[m] < t) {
            l = m + 1;
        } else {
            r = m - 1;
        }
    }
    return -1;
}

int main() {
    int a[] = {1, 2, 3, 4, 5};
    int n = sizeof(a) / sizeof(int);
    printf("%d\n", BinSearch(a, n, 1));
    printf("%d\n", BinSearch(a, n, 5));
    printf("%d\n", BinSearch(a, n, 3));
    printf("%d\n", BinSearch(a, n, -1));
    printf("%d\n", BinSearch(a, n, 100));
    return 0;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 思想:
  • 关键点:
  • 代码:
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档