如何在PYTHON里理解二分查找的方法
1、打开JUPYTER NOTEBOOK,新建一个空白的PY文档。

2、l = [1, 4, 6, 8, 33, 100, 203, 344, 999]这里有个有序的列表,我们要找出目标的数字。

3、goal = 344for i in l: print(i) if i == goal: break如果用FOR LOOPS,那么运行的速度会随着数据的增加而减慢。

4、low = 0high = len(l) - 1mid = (low + high) // 2guess = l[mid]因此我们定义最小的序号和最大的序号,然后再定义中间值,接着就是定义变量,每次我们要猜的中间值变量。



5、l = [1, 4, 6, 8, 33, 100, 203, 344, 999]goal = 344low = 0high = len(l) - 1while low < high: mid = (low + high) // 2 guess = l[mid] if guess > goal: high = mid - 1 print(l[high]) elif guess < goal: low = mid print(l[low])因为要不断进行,所以要用循环。

6、l = [1, 4, 6, 8, 33, 100, 203, 344, 999]goal = 344low = 0high = len(l) - 1while low < high: mid = (low + high) // 2 guess = l[mid] if guess == goal: print(l[mid]) if guess > goal: high = mid - 1 elif guess < goal: low = mid修改一下,如果遇到相应的值,那么就打印出来。

7、l = [1, 4, 6, 8, 33, 100, 203, 344, 999]goal = 344low = 0high = len(l) - 1while low < high: mid = (low + high) // 2 guess = l[mid] if guess == goal: print(l[mid]) elif guess > goal: high = mid - 1 else: low = mid + 1注意low应该+1

8、l = [1, 4, 6, 8, 33, 100, 203, 344, 999]goal = 344low = 0high = len(l) - 1while low < high: mid = (low + high) // 2 guess = l[mid] if guess == goal: print(l[mid]) break elif guess > goal: high = mid - 1 else: low = mid + 1如果没有定义函数,那么需要用break来停止循环。

9、l = [1, 4, 6, 8, 33, 100, 203, 344, 999]goal = 1low = 0high = len(l) - 1while low <= high: mid = (low + high) // 2 guess = l[mid] if guess == goal: print(l[mid]) break elif guess > goal: high = mid - 1 else: low = mid + 1注意low除了小于还要设置等于。
