栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【算法打卡】Day1-二分查找(Java)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【算法打卡】Day1-二分查找(Java)

【算法打卡】Day1-二分查找(Java) 二分查找

二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好,占用系统内存较少;其缺点是要求待查表为有序表,且插入删除困难。当一个顺序表的数据根据某种方式有序排列的时候,就可以使用二分法查找。二分查找又称折半查找,仅适用于有序的顺序表。

基本思路

1.首先将预期结果与顺序表中间位置的元素或对象属性比较,若相等,则查找成功,返回结果;
2.若不等,则所查结果只会在中间元素或对象之外的前半部分或者后半部分。
3.然后在缩小的范围内继续进行上述两个步骤,知道找到或者确定表中没有对应结果位置。

伪代码
int binarySearch(SeqList L,ElemType key){
//在有序表L中查找关键字为key的元素,若存在则返回其所在位置,否则返回-1
    int low=0,high=L.length-1;
    int mid;
    while(low<=high){
        mid=(low+high)/2;//取中间位置
        if(L.index[mid]==key){
            return mid;//查找成功则返回所在位置
        }else if(L.index[mid]>key){
            high = mid-1;//从前半部分继续找
        }else{
            low=mid+1;//从后半部分继续找
        }
    }
    return -1;
}
时间复杂度

O(logn)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/571357.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号