This commit is contained in:
krahets
2023-07-17 04:20:53 +08:00
parent d0670b87ac
commit ce35a56c50
4 changed files with 302 additions and 14 deletions

View File

@@ -18,6 +18,8 @@ comments: true
<p align="center"> Fig. 归并排序的分治策略 </p>
## 12.1.1. &nbsp; 如何判断分治问题
一个问题是否适合使用分治解决,通常可以参考以下几个判断依据:
1. **问题可以被分解**:原问题可以被分解成规模更小、类似的子问题,以及能够以相同方式递归地进行划分。
@@ -30,7 +32,7 @@ comments: true
2. 每个子数组都可以独立地进行排序,因此子问题是独立的;
3. 两个有序子数组(子问题的解)可以被合并为一个有序数组(原问题的解);
## 12.1.1. &nbsp; 通过分治提升效率
## 12.1.2. &nbsp; 通过分治提升效率
分治不仅可以有效地解决算法问题,**往往还可以提升算法效率**。在排序算法中,归并排序相较于选择、冒泡、插入排序更快,就是因为其应用了分治策略。
@@ -76,7 +78,7 @@ $$
<p align="center"> Fig. 桶排序的并行计算 </p>
## 12.1.2. &nbsp; 分治常见应用
## 12.1.3. &nbsp; 分治常见应用
一方面,分治可以用来解决许多经典算法问题: