数据结构--折半查找

 一、算法思想

  1.折半查找又称“二分查找”,仅适用于有序的顺序表。

   在数组中,使用两个指针,low指针指向头元素和high指向尾元素。再用mid指针指向(low+high)/2的位置,然后对比该元素和查找元素的大小,如果查找元素大于mid元素,则可以将low指针指向mid+1的位置(如果小于则将high指针指向mid-1的位置)。再次将(low+high)/2的位置与查找元素做对比,重复以上步骤,当low指向位置与high指向位置相同时,则查找成功,当low指针跑到high指针右边时,或high指针跑到low指针左边时,则查找失败。

二、算法实现(升序)

   使用while循环,检查mid位置元素与查找元素是否相等,如果相等,则返回所在位置,对于或小于根据上述方法进行再次查找。

  (折半查找不适用于链表)

三、查找判定树

  

  1.查找判定树的构造

  折半查找的判定树一定是平衡二叉树,元素个数为n的树高H=[log2^(n+1)]。

判定树结点关键字: 左<中<右,满足二叉排序树的定义 ,

  则失败结点: n+1个(等于成功结点的空链域数量)

四、折半查找效率

  查找成功失败都不超过树高h。

  时间复杂度为:O(log2^n)

  总结:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值