二分查找法动态图解,二分查找法详细讲解

首页 > 教育 > 作者:YD1662024-05-15 00:21:42

你每次都检查中间的元素。

mid = (low high) / 2 ←---如果(low high)不是偶数,Python自动将mid向下取整。 guess = list[mid]

如果猜的数字小了,就相应地修改low。

if guess < item: low = mid 1

二分查找法动态图解,二分查找法详细讲解(13)

如果猜的数字大了,就修改high。完整的代码如下。

def binary_search(list, item): low = 0 (以下2行)low和high用于跟踪要在其中查找的列表部分 high = len(list)—1 while low <= high: ←-------------只要范围没有缩小到只包含一个元素, mid = (low high) / 2 ←-------------就检查中间的元素 guess = list[mid] if guess == item: ←-------------找到了元素 return mid if guess > item: ←-------------猜的数字大了 high = mid - 1 else: ←---------------------------猜的数字小了 low = mid 1 return None ←--------------------没有指定的元素 my_list = [1, 3, 5, 7, 9] ←------------来测试一下! print binary_search(my_list, 3) # => 1 ←--------------------别忘了索引从0开始,第二个位置的索引为1 print binary_search(my_list, -1) # => None ←--------------------在Python中,None表示空,它意味着没有找到指定的元素

本文节选自《算法图解》

二分查找法动态图解,二分查找法详细讲解(14)

《算法图解》

作者:Aditya Bhargava

本书完成了一项不可能完成的任务:让数学变得有趣而易懂!

你渴望像看喜欢的小说一样学习算法吗?如果是,本书正是你梦寐以求的!

本书示例丰富,图文并茂,以让人容易理解的方式阐释了算法,旨在帮助程序员在日常项目中更好地发挥算法的能量。书中的前三章将帮助你打下基础,余下篇幅主要介绍应用广泛的算法,具体内容包括:何时采用贪婪算法或动态规划;散列表的应用;图算法;K最近邻算法等。

上一页1234末页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.