简单实现一下二分查找

我们昨天大致地讲了一下二分查找 的概念,今天我们要来学习一下如何用python代码把二分查找简单地实现一下。

 

好的,废话不多说,直接看代码:

def LSF(seq, number, lower, upper)
   if lower == upper:
       assert number == seq[upper]
       return upper
else:
   middle = (lower + upper)/2
   if number  > seq[middle]:
       return search(seq, number, middle +1, upper) 
   else:
       return search(seq, number, lower, middle)

上面这段代码只是大概地实现了一下二分查找的功能,没有具体的赋值,我们来解析一下这段代码,可能看起来有一点点多。

我们先来解释一下上面每一个变量代表什么,seq表示寻找的序列,number表示要找的数,lower表示最低那个数的序号,upper则表示最高那个数的序号。

接下来解释一下语法,先判断是否只有一个数,也就是lower是否等于upper,如果等于就没比较的必要了,直接输出结果就行了,接下来就是运算一下lower不等于upper的情况。直接把所有的数对半分,接着进行比较,看一下number在哪一半里面,在进行对半分,知道找到number。

好的,今天的内容就讲到这里啦~内容不多,但是好好看一下上面那段代码哦~

 

 

(文章图片若有侵权,请联系作者删除)

posted @ 2018-06-13 22:49  木木烽  阅读(260)  评论(0编辑  收藏  举报