mirror of
https://github.com/krahets/hello-algo.git
synced 2025-07-31 14:23:30 +08:00
deploy
This commit is contained in:
@ -3420,7 +3420,7 @@
|
||||
<ul>
|
||||
<li><strong>问题可以被分解</strong>:二分查找递归地将原问题(在数组中进行查找)分解为子问题(在数组的一半中进行查找),这是通过比较中间元素和目标元素来实现的。</li>
|
||||
<li><strong>子问题是独立的</strong>:在二分查找中,每轮只处理一个子问题,它不受另外子问题的影响。</li>
|
||||
<li><strong>子问题的解无需合并</strong>:二分查找旨在查找一个特定元素,因此不需要将子问题的解进行合并。当子问题得到解决时,原问题也会同时得到解决。</li>
|
||||
<li><strong>子问题的解无须合并</strong>:二分查找旨在查找一个特定元素,因此不需要将子问题的解进行合并。当子问题得到解决时,原问题也会同时得到解决。</li>
|
||||
</ul>
|
||||
<p>分治能够提升搜索效率,本质上是因为暴力搜索每轮只能排除一个选项,<strong>而分治搜索每轮可以排除一半选项</strong>。</p>
|
||||
<h3 id="1">1. 基于分治实现二分<a class="headerlink" href="#1" title="Permanent link">¶</a></h3>
|
||||
|
@ -3350,7 +3350,7 @@
|
||||
<li>分治算法是一种常见的算法设计策略,包括分(划分)和治(合并)两个阶段,通常基于递归实现。</li>
|
||||
<li>判断是否是分治算法问题的依据包括:问题能否被分解、子问题是否独立、子问题是否可以被合并。</li>
|
||||
<li>归并排序是分治策略的典型应用,其递归地将数组划分为等长的两个子数组,直到只剩一个元素时开始逐层合并,从而完成排序。</li>
|
||||
<li>引入分治策略往往可以带来算法效率的提升。一方面,分治策略减少了计算操作数量;另一方面,分治后有利于系统的并行优化。</li>
|
||||
<li>引入分治策略往往可以带来算法效率的提升。一方面,分治策略减少了操作数量;另一方面,分治后有利于系统的并行优化。</li>
|
||||
<li>分治既可以解决许多算法问题,也广泛应用于数据结构与算法设计中,处处可见其身影。</li>
|
||||
<li>相较于暴力搜索,自适应搜索效率更高。时间复杂度为 <span class="arithmatex">\(O(\log n)\)</span> 的搜索算法通常都是基于分治策略实现的。</li>
|
||||
<li>二分查找是分治思想的另一个典型应用,它不包含将子问题的解进行合并的步骤。我们可以通过递归分治实现二分查找。</li>
|
||||
|
Reference in New Issue
Block a user