diff --git a/chapter_computational_complexity/performance_evaluation/index.html b/chapter_computational_complexity/performance_evaluation/index.html index 25cff98c8..5acb77eaf 100644 --- a/chapter_computational_complexity/performance_evaluation/index.html +++ b/chapter_computational_complexity/performance_evaluation/index.html @@ -1795,7 +1795,7 @@

2.1.   算法效率评估

2.1.1.   算法评价维度

-

在开始学习算法之前,我们首先需要明确算法的设计目标,换句话说,我们应该如何评判算法的优劣。从总体上看,算法设计追求以下两个层面的目标:

+

从总体上看,算法设计追求以下两个层面的目标:

  1. 找到问题解法。算法需要在规定的输入范围内,可靠地求得问题的正确解。
  2. 寻求最优解法。同一个问题可能存在多种解法,我们希望找到尽可能高效的算法。
  3. @@ -1805,7 +1805,7 @@
  4. 时间效率,即算法运行速度的快慢。
  5. 空间效率,即算法占用内存空间的大小。
  6. -

    数据结构与算法的终极目标是“又快又省”。了解如何评估算法效率非常重要,因为只有掌握了评价方法,我们才能进行算法间的对比分析,从而指导算法设计与优化。

    +

    简而言之,我们的目标是设计“既快又省”的数据结构与算法。掌握评估算法效率的方法则至关重要,因为只有了解评价标准,我们才能进行算法之间的对比分析,从而指导算法设计与优化过程。

    2.1.2.   效率评估方法

    实际测试

    假设我们现在有算法 A 和算法 B,它们都能解决同一问题,现在需要对比这两个算法的效率。我们最直接的方法就是找一台计算机,运行这两个算法,并监控记录它们的运行时间和内存占用情况。这种评估方式能够反映真实情况,但也存在较大局限性。

    diff --git a/chapter_data_structure/classification_of_data_structure/index.html b/chapter_data_structure/classification_of_data_structure/index.html index b9f9a3e5e..8a87ceec4 100644 --- a/chapter_data_structure/classification_of_data_structure/index.html +++ b/chapter_data_structure/classification_of_data_structure/index.html @@ -1740,10 +1740,10 @@

    3.2.   数据结构分类

    -

    数据结构主要可根据「逻辑结构」和「物理结构」两种角度进行分类。

    +

    数据结构可以从逻辑结构和物理结构两个维度进行分类。

    3.2.1.   逻辑结构:线性与非线性

    -

    「逻辑结构」反映了数据之间的逻辑关系。数组和链表的数据按照顺序依次排列,反映了数据间的线性关系;树从顶至底按层级排列,反映了祖先与后代之间的派生关系;图由结点和边组成,反映了复杂网络关系。

    -

    我们一般将逻辑结构分为「线性」和「非线性」两种。“线性”这个概念很直观,即表明数据在逻辑关系上是排成一条线的;而如果数据之间的逻辑关系是非线性的(例如是网状或树状的),那么就是非线性数据结构。

    +

    「逻辑结构」揭示了数据元素之间的逻辑关系。在数组和链表中,数据按照顺序依次排列,体现了数据之间的线性关系;而在树中,数据从顶部向下按层次排列,表现出祖先与后代之间的派生关系;图则由结点和边构成,反映了复杂的网络关系。

    +

    逻辑结构通常分为「线性」和「非线性」两类。线性结构比较直观,指数据在逻辑关系上呈线性排列;非线性结构则相反,呈非线性排列,例如网状或树状结构。