From c68f18e480ebe31a417de58c7b63680af002227f Mon Sep 17 00:00:00 2001 From: krahets Date: Wed, 19 Jul 2023 01:45:14 +0800 Subject: [PATCH] Finetune --- codes/java/chapter_divide_and_conquer/hanota.java | 4 ++-- codes/python/chapter_graph/graph_dfs.py | 2 +- docs/chapter_backtracking/backtracking_algorithm.md | 2 +- docs/chapter_divide_and_conquer/hanota_problem.md | 2 +- docs/chapter_divide_and_conquer/summary.md | 2 +- .../chapter_dynamic_programming/unbounded_knapsack_problem.md | 2 +- docs/chapter_heap/build_heap.md | 2 +- mkdocs.yml | 4 ++-- 8 files changed, 10 insertions(+), 10 deletions(-) diff --git a/codes/java/chapter_divide_and_conquer/hanota.java b/codes/java/chapter_divide_and_conquer/hanota.java index 6f697ef4e..adc1dd2b2 100644 --- a/codes/java/chapter_divide_and_conquer/hanota.java +++ b/codes/java/chapter_divide_and_conquer/hanota.java @@ -33,7 +33,7 @@ public class hanota { } /* 求解汉诺塔 */ - static void hanota(List A, List B, List C) { + static void solveHanota(List A, List B, List C) { int n = A.size(); // 将 A 顶部 n 个圆盘借助 B 移到 C dfs(n, A, B, C); @@ -49,7 +49,7 @@ public class hanota { System.out.println("B = " + B); System.out.println("C = " + C); - hanota(A, B, C); + solveHanota(A, B, C); System.out.println("圆盘移动完成后:"); System.out.println("A = " + A); diff --git a/codes/python/chapter_graph/graph_dfs.py b/codes/python/chapter_graph/graph_dfs.py index aada40787..3acd74ac1 100644 --- a/codes/python/chapter_graph/graph_dfs.py +++ b/codes/python/chapter_graph/graph_dfs.py @@ -23,9 +23,9 @@ def dfs(graph: GraphAdjList, visited: set[Vertex], res: list[Vertex], vet: Verte dfs(graph, visited, res, adjVet) -# 使用邻接表来表示图,以便获取指定顶点的所有邻接顶点 def graph_dfs(graph: GraphAdjList, start_vet: Vertex) -> list[Vertex]: """深度优先遍历 DFS""" + # 使用邻接表来表示图,以便获取指定顶点的所有邻接顶点 # 顶点遍历序列 res = [] # 哈希表,用于记录已被访问过的顶点 diff --git a/docs/chapter_backtracking/backtracking_algorithm.md b/docs/chapter_backtracking/backtracking_algorithm.md index 7086aeae6..5e9c0ab4c 100644 --- a/docs/chapter_backtracking/backtracking_algorithm.md +++ b/docs/chapter_backtracking/backtracking_algorithm.md @@ -742,7 +742,7 @@ - 上文介绍过的剪枝是一种常用的优化方法。它可以避免搜索那些肯定不会产生有效解的路径,从而节省时间和空间。 - 另一个常用的优化方法是加入「启发式搜索 Heuristic Search」策略,它在搜索过程中引入一些策略或者估计值,从而优先搜索最有可能产生有效解的路径。 -## 典型例题 +## 回溯典型例题 **搜索问题**:这类问题的目标是找到满足特定条件的解决方案。 diff --git a/docs/chapter_divide_and_conquer/hanota_problem.md b/docs/chapter_divide_and_conquer/hanota_problem.md index fd4b9440d..2c7bf9165 100644 --- a/docs/chapter_divide_and_conquer/hanota_problem.md +++ b/docs/chapter_divide_and_conquer/hanota_problem.md @@ -83,7 +83,7 @@ [class]{hanota}-[func]{dfs} - [class]{hanota}-[func]{hanota} + [class]{hanota}-[func]{solveHanota} ``` === "C++" diff --git a/docs/chapter_divide_and_conquer/summary.md b/docs/chapter_divide_and_conquer/summary.md index 345b2ecdb..3e79f9792 100644 --- a/docs/chapter_divide_and_conquer/summary.md +++ b/docs/chapter_divide_and_conquer/summary.md @@ -6,6 +6,6 @@ - 引入分治策略往往可以带来算法效率的提升。一方面,分治策略减少了计算吧操作数量;另一方面,分治后有利于系统的并行优化。 - 分治既可以解决许多算法问题,也广泛应用于数据结构与算法设计中,处处可见其身影。 - 相较于暴力搜索,自适应搜索效率更高。时间复杂度为 $O(\log n)$ 的搜索算法通常都是基于分治策略实现的。 -- 二分查找也体现了分治思想,我们可以通过递归分治实现二分查找。 +- 二分查找是分治思想的另一个典型应用,它不包含将子问题的解进行合并的步骤。我们可以通过递归分治实现二分查找。 - 在构建二叉树问题中,构建树(原问题)可以被划分为构建左子树和右子树(子问题),其可以通过划分前序遍历和中序遍历的索引区间来实现。 - 在汉诺塔问题中,一个规模为 $n$ 的问题可以被划分为两个规模为 $n-1$ 的子问题和一个规模为 $1$ 的子问题。按顺序解决这三个子问题后,原问题随之得到解决。 diff --git a/docs/chapter_dynamic_programming/unbounded_knapsack_problem.md b/docs/chapter_dynamic_programming/unbounded_knapsack_problem.md index caa943c7a..674cdd713 100644 --- a/docs/chapter_dynamic_programming/unbounded_knapsack_problem.md +++ b/docs/chapter_dynamic_programming/unbounded_knapsack_problem.md @@ -188,7 +188,7 @@ $$ !!! question - 给定 $n$ 种硬币,第 $i$ 个硬币的面值为 $coins[i - 1]$ ,为目标金额 $amt$ ,**每种硬币可以重复选取**,问能够凑出目标金额的最少硬币个数。如果无法凑出目标金额则返回 $-1$ 。 + 给定 $n$ 种硬币,第 $i$ 个硬币的面值为 $coins[i - 1]$ ,目标金额为 $amt$ ,**每种硬币可以重复选取**,问能够凑出目标金额的最少硬币个数。如果无法凑出目标金额则返回 $-1$ 。 如下图所示,凑出 $11$ 元最少需要 $3$ 枚硬币,方案为 $1 + 2 + 5 = 11$ 。 diff --git a/docs/chapter_heap/build_heap.md b/docs/chapter_heap/build_heap.md index 9c7e56f71..4ea018bbe 100644 --- a/docs/chapter_heap/build_heap.md +++ b/docs/chapter_heap/build_heap.md @@ -117,7 +117,7 @@ $$ $$ \begin{aligned} T(h) & = 2 \frac{1 - 2^h}{1 - 2} - h \newline -& = 2^{h+1} - h \newline +& = 2^{h+1} - h - 2 \newline & = O(2^h) \end{aligned} $$ diff --git a/mkdocs.yml b/mkdocs.yml index c15563035..ac9784529 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -46,13 +46,13 @@ theme: primary: white # accent: indigo toggle: - icon: material/weather-sunny + icon: material/theme-light-dark name: Switch to dark mode - scheme: slate primary: grey # accent: indigo toggle: - icon: material/weather-night + icon: material/theme-light-dark name: Switch to light mode font: text: Noto Sans SC