全部版块 我的主页
论坛 金融投资论坛 六区 金融学(理论版) 量化投资
1845 1
2016-02-24
刚开始学python,看到二元查找,看不懂了,求大神解答!
书上是这么些的:
def search(sequence,number,lower,upper):
    if lower==upper:
        assert number==sequence[upper]
        return upper
    else:
        middle=(lower+uppper)//2
        if number>sequence[middle]:
            return search(sequence,number,middle+1,upper)
        else:
            return search(sequence,number,lower,middle)


提问:
1.第一部分,返回的是sequence列表中upper这个数么?
2.写完之后,像书上写的输入seq=[4,8,34,67,95,100,123],然后search(seq,34),但是说缺少两个变量
3.还有提示错误out of range
能有大神帮忙解释一下吗,谢谢啊!在线等~~
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2016-2-26 22:27:43
lower, and upper is the index of the list

there is a typo at line 6 : uppper

call: search(seq, 34, 0, len(seq), which returns 2 as the third element in the list
Python has it own module: bisect


https://github.com/enthought/Python-2.7.3/blob/master/Lib/bisect.py

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群