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

c-二分查找

作者头像
kdyonly
发布2023-03-03 19:22:30
2410
发布2023-03-03 19:22:30
举报
文章被收录于专栏:个人编程笔记个人编程笔记

浏览量 1

二分查找作为一个基本的算法,在各种应用和考题中都有用到,其中有两种方式来实现,递归和循环,在适当的条件下选择不同的方式。其实在网上也找得很多关于算法的这种代码,之所以选择推送是希望大家包括我自己能够利用碎片化的时间进行学习,慢慢的积累自身的知识,以期望最终达到质变的过程。

递归方法

代码语言:javascript
复制
int BinSearch(int Array[],int low,int high,int key/*要找的值*/)  
{  
    if (low<=high)  
    {  
        int mid = (low+high)/2;  
        if(key == Array[mid])  
            return mid;  
        else if(key<Array[mid])  
            return BinSearch(Array,low,mid-1,key);  
        else if(key>Array[mid])  
            return BinSearch(Array,mid+1,high,key);  
    }  
    else  
        return -1;  
}  

非递归方法

代码语言:javascript
复制
int BinSearch(int Array[],int SizeOfArray,int key/*要找的值*/)  
{  
    int low=0,high=SizeOfArray-1;  
    int mid;  
    while (low<=high)  
    {  
        mid = (low+high)/2;  
        if(key==Array[mid])  
            return mid;  
        if(key<Array[mid])  
            high=mid-1;  
        if(key>Array[mid])  
            low=mid+1;  
    }  
    return -1;  
}  
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-11-27,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档