This commit is contained in:
krahets
2023-08-19 22:07:27 +08:00
parent 71c7786f51
commit 2e27ad1680
99 changed files with 283 additions and 283 deletions
@@ -3,7 +3,7 @@ comments: true
status: new
---
# 12.1.   分治算法
# 12.1   分治算法
「分治 Divide and Conquer」,全称分而治之,是一种非常重要且常见的算法策略。分治通常基于递归实现,包括“分”和“治”两步:
@@ -19,7 +19,7 @@ status: new
<p align="center"> 图:归并排序的分治策略 </p>
## 12.1.1. &nbsp; 如何判断分治问题
## 12.1.1 &nbsp; 如何判断分治问题
一个问题是否适合使用分治解决,通常可以参考以下几个判断依据:
@@ -33,7 +33,7 @@ status: new
2. 每个子数组都可以独立地进行排序(子问题可以独立进行求解)。
3. 两个有序子数组(子问题的解)可以被合并为一个有序数组(原问题的解)。
## 12.1.2. &nbsp; 通过分治提升效率
## 12.1.2 &nbsp; 通过分治提升效率
分治不仅可以有效地解决算法问题,**往往还可以带来算法效率的提升**。在排序算法中,快速排序、归并排序、堆排序相较于选择、冒泡、插入排序更快,就是因为它们应用了分治策略。
@@ -79,7 +79,7 @@ $$
<p align="center"> 图:桶排序的并行计算 </p>
## 12.1.3. &nbsp; 分治常见应用
## 12.1.3 &nbsp; 分治常见应用
一方面,分治可以用来解决许多经典算法问题: