查找-折半查找

给定一个有序序列,查找与key相等的值,如果没有则返回-1(注意这里不要返回0,会和数组下标重复)

#include <stdio.h>

int binary_search(int a[],int left,int right,int key)
{
    while(left <= right)
    {
        int mid = (left + right) /2;
        if(a[mid] == key)
            return mid;
        else if(a[mid] < key)
        {
            left = mid + 1;
        }
        else
        {
            right = mid -1;
        }
    }
    return -1;
}
int main()
{
    int a[] = {1,2,3,4,5,6,7,8};
    int index;
    int right = sizeof(a)/sizeof(int);
    index = binary_search(a,0,right-1,3);
    printf("%d",index);
    return 0;
}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,010评论 19 139
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,481评论 0 5
  • 一、Java 简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计...
    子非鱼_t_阅读 4,295评论 1 44
  • 可供参考:安装版:MySQL安装和配置详细http://www.jianshu.com/p/7458c274580...
    举子7先生阅读 1,658评论 0 10
  • 今天为为大家分享的是纯干货听课笔记,教你如何读书! 新手阅读常见误区 误区1 读书一定要把书读完 误区2 只会一页...
    大叔是个撒子阅读 476评论 0 0