【算法图解】第1章 算法简介之二分查找

考研结束的我又拿起了python书~
今天尝试用算法书回忆起曾经学的稀烂的python
第一个算法是:二分法查找
对于这本人民邮电出版社的书,不知道是我的问题还是其他,其中二分法的代码在Geany上运行出现了各种错误,如若有幸能被有同样疑惑的小伙伴看到,希望我修改后的代码能够有所帮助~

书中代码于Page 7
修改后的代码:

#coding:gbk  #在编辑器中这个一定不能忘

def binary_reaserch(list, item):
	low =  0
	high = len(list)-1
	
	while low <= high:
		mid = (low+high)//2 #书中下半部分的代码只有一个"/",而联系上下文应当取向下整数,因此为"//"
		guess = mid #书中原本为取列表,但是由于后面的大小比较,而列表无法进行比较,因此不应当加上list[],因此这一步其实也可省略直接取mid
		if guess == item:
			return mid 
		if guess > item:
			high = mid -1
		else:
			low = mid + 1
	return None
mylist = [1,3,5,7,9]
print(binary_reaserch(mylist,3))  #print函数的正确调用应为print(),书中的print加空格的方式至少在学过《从入门到实践》后是无法实现的(这本书强调的是print("Hello!Python World!"))
print(binary_reaserch(mylist,-1))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值