数据结构与算法:二分查找

版权声明:本文为博主原创文章,转载请注明出处,谢谢 https://blog.csdn.net/suiyueruge1314/article/details/84943749

数据结构与算法:二分查找

最近看到一本关于数据结构的书,甚是有趣,稍以记载,方便以后回忆!
一、二分查找
假设要在电话簿中找一个名字以K打头的人,(现在谁还用电话簿!)可以从头开始翻页,直到进入以K打头的部分。但你很可能不这样做,而是从中间开始,因为你知道以K打头的名字在电话簿中间。这是一个查找问题,在前述所有情况下,都可使用同一种算法来解决问题,这种算法就是二分查找。
二分查找是一种算法,其输入是一个有序的元素列表(必须有序的原因稍后解释)。如果要查找的元素包含在列表中,二分查找返回其位置否则返回null。
举个例子
在这里插入图片描述
在这里插入图片描述
**这是简单查找,更准确的说法是傻找。每次猜测都只能排除一个数字。如果我想的数字是99,你得猜99次才能猜到!

更佳的查找方法:**
比如手
在这里插入图片描述
在这里插入图片描述
仅当列表是有序的时候,二分查找才管用。例如,电话簿中的名字是按字母顺序排列的,
因此可以使用二分查找来查找名字。

其实,以上关于二分法的最大次数可以用信息熵来计算和理解,下一节讲时间复杂度时细讲

猜你喜欢

转载自blog.csdn.net/suiyueruge1314/article/details/84943749
今日推荐