数据结构之查找

目录

一、二分查找(折半查找)

二、顺序查找

三、二叉树查找


一、二分查找(折半查找)

二分查找又叫折半查找,只能用于数组中。

核心:在查找区间中选择一个中间的数字(以该数字为边界把区间划分成左右两个区间)与目标值判断,若目标值比它大,则目标值在右区间,相反则在左区间。重复以上操作直到找到目标值。

二分查找的left与right的大小关系、重新划分区间时left与right的值变为多少都与查找区间的开闭性有关。通常都是左闭右闭或者左闭右开。

代码实现:

int binary_search(int arr[],int n,int target){
    //查找区间为左闭右闭
    int left=0;
    int right=n-1;
    while(left<=right)
    {
        int middle=(left+right)/2;
        if(arr[middle]<target)
        {
            left=middle+1;
        }else if(arr[middle]>target)
        {
            right=middle-1;
        }else
        {
            return middle;
        }
    }
    return 0;//在该区间没有找到目标值
}

二、顺序查找

顺序查找是按照序列原有顺序对数组进行遍历比较查询的基本查找算法。

顺序查找的平均长度:

成功:(1+n)/2

失败:n

三、二叉树查找

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值