<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>二分查找 | Hugo Academic Blog Theme</title><link>https://blog.xuzhaoyang.fun/tag/%E4%BA%8C%E5%88%86%E6%9F%A5%E6%89%BE/</link><atom:link href="https://blog.xuzhaoyang.fun/tag/%E4%BA%8C%E5%88%86%E6%9F%A5%E6%89%BE/index.xml" rel="self" type="application/rss+xml"/><description>二分查找</description><generator>Wowchemy (https://wowchemy.com)</generator><language>en-us</language><lastBuildDate>Mon, 11 Mar 2019 10:02:09 +0000</lastBuildDate><image><url>https://blog.xuzhaoyang.fun/media/icon_hua2ec155b4296a9c9791d015323e16eb5_11927_512x512_fill_lanczos_center_3.png</url><title>二分查找</title><link>https://blog.xuzhaoyang.fun/tag/%E4%BA%8C%E5%88%86%E6%9F%A5%E6%89%BE/</link></image><item><title>关于二分查找的一些东西</title><link>https://blog.xuzhaoyang.fun/post/%E5%85%B3%E4%BA%8E%E4%BA%8C%E5%88%86%E6%9F%A5%E6%89%BE%E7%9A%84%E4%B8%80%E4%BA%9B%E4%B8%9C%E8%A5%BF/</link><pubDate>Mon, 11 Mar 2019 10:02:09 +0000</pubDate><guid>https://blog.xuzhaoyang.fun/post/%E5%85%B3%E4%BA%8E%E4%BA%8C%E5%88%86%E6%9F%A5%E6%89%BE%E7%9A%84%E4%B8%80%E4%BA%9B%E4%B8%9C%E8%A5%BF/</guid><description>&lt;p>二分查找是比较常见的查找算法，在猜价的节目中就可以用到。
二分查找的时间复杂度为O(logn)。&lt;/p>
&lt;p>Python实现：&lt;/p>
&lt;!-- more -->
&lt;ul>
&lt;li>迭代&lt;/li>
&lt;/ul>
&lt;pre>&lt;code class="language-python">def search(nums, target):
start = 0
end = len(nums) - 1
while start &amp;lt;= end:
mid = (start + end) // 2
mid_num = nums[mid]
if mid_num &amp;gt; target:
end = mid - 1
elif mid_num &amp;lt; target:
start = mid + 1
else:
return mid
return -1
&lt;/code>&lt;/pre>
&lt;ul>
&lt;li>递归&lt;/li>
&lt;/ul>
&lt;pre>&lt;code class="language-python">def search(nums, target, start, end):
if start &amp;gt; end:
return -1
mid = (start + end) // 2
mid_num = nums[mid]
if mid_num &amp;gt; target:
return search(nums, target, start, mid-1)
elif mid_num &amp;lt; target:
return search(nums, target, mid+1, end)
else:
return mid
&lt;/code>&lt;/pre></description></item></channel></rss>