6-199 统计二分查找比较的次数(Python)

在一个有序表中进行二分查找操作,要求查找元素x,判断是否找到,如果能找到,返回其所在位置,并统计查找过程中需要比较的次数;如果不能找到,则统计查找过程中需要比较的次数即可。

例如:0 2 4 5 8 9
查找元素8,它在位置4,比较次数为2
查找元素9,它在位置5,比较次数为3
查找元素10,没有找到,比较次数为3

函数接口定义:

def biSearch(a, x, cnt):

其中 ax 和 cnt 都是用户传入的参数。 a存储数据的列表;x是要查找的元素值;cnt用来统计比较的次数。函数须返回查找是否成功的标记(成功返回位置,不成功返回0)以及查找过程中比较的次数。

裁判测试程序样例:

## 你的答案将被填在这里
if __name__ == '__main__':
    n = int(input())
    a = list(map(int, input().split()))
    x = int(input())
    cnt = 0
    t, cnt = biSearch(a, x, cnt)
    if t > 0:
        print("Find it! It is %d. You find %d times" % (t, cnt))
    else:
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值