From ae719e00d3e43d77e8a3d93b50047d155cd34983 Mon Sep 17 00:00:00 2001 From: krahets Date: Sun, 26 Feb 2023 05:34:50 +0800 Subject: [PATCH] deploy --- chapter_preface/about_the_book/index.html | 209 ++++--------------- chapter_preface/suggestions/index.html | 237 +++++++++++++++++----- index.html | 3 +- search/search_index.json | 2 +- sitemap.xml.gz | Bin 611 -> 611 bytes 5 files changed, 221 insertions(+), 230 deletions(-) diff --git a/chapter_preface/about_the_book/index.html b/chapter_preface/about_the_book/index.html index 0da92b5e9..3e74e2546 100644 --- a/chapter_preface/about_the_book/index.html +++ b/chapter_preface/about_the_book/index.html @@ -361,35 +361,28 @@
  • - 0.1.3.   配套代码 + 0.1.3.   本书定位
  • - 0.1.4.   风格约定 + 0.1.4.   本书特点
  • - 0.1.5.   本书特点 * + 0.1.5.   致谢
  • - 0.1.6.   致谢 - - -
  • - -
  • - - 0.1.7.   作者简介 + 0.1.6.   作者简介
  • @@ -1636,35 +1629,28 @@
  • - 0.1.3.   配套代码 + 0.1.3.   本书定位
  • - 0.1.4.   风格约定 + 0.1.4.   本书特点
  • - 0.1.5.   本书特点 * + 0.1.5.   致谢
  • - 0.1.6.   致谢 - - -
  • - -
  • - - 0.1.7.   作者简介 + 0.1.6.   作者简介
  • @@ -1694,34 +1680,34 @@

    0.1.   关于本书

    +
    +

    Tip

    +

    对于本章内容,建议通读如何使用本书,其余章节可根据需求选读。

    +

    五年前发生的一件事,成为了我职业生涯的重要转折点。当时的我在交大读研,对互联网求职一无所知,但仍然硬着头皮申请了 Microsoft 软件工程师实习。面试官让我在白板上写出“快速排序”代码,我畏畏缩缩地写了一个“冒泡排序”,并且还写错了(ToT) 。从面试官的表情上,我看到了一个大大的 "GG" 。

    此次失利倒逼我开始刷算法题。我采用“扫雷游戏”式的学习方法,两眼一抹黑刷题,扫到不会的“雷”就通过查资料把它“排掉”,配合周期性总结,逐渐形成了数据结构与算法的知识图景。幸运地,我在秋招斩获了多家大厂的 Offer 。

    -

    回想自己当初在“扫雷式”刷题中被炸的满头包的痛苦,思考良久,我意识到一本“前期刷题必看”的读物可以使算法小白少走许多弯路。写作意愿滚滚袭来,那就动笔吧:

    +

    回想自己当初在“扫雷式”刷题中被炸的满头包的痛苦,思考良久,我意识到一本“前期刷题必看”的读物可以使算法小白少走许多弯路。写作意愿滚滚袭来,那就动笔吧:

    Hello,算法!

    0.1.1.   读者对象

    +

    如果您是「算法初学者」,完全没有接触过算法,或者已经有少量刷题,对数据结构与算法有朦胧的理解,在会与不会之间反复横跳,那么这本书就是为您而写!本书能够带来:

    + +

    如果您是「算法老手」,已经积累一定刷题量,接触过大多数题型,那么本书内容对你来说可能稍显基础,但仍能够带来以下价值:

    + +

    如果您是「算法大佬」,请受我膜拜!希望您可以抽时间提出意见建议,或者一起参与创作,帮助各位同学获取更好的学习内容,感谢!

    前置条件

    您需要至少具备任一语言的编程基础,能够阅读和编写简单代码。

    -

    如果您是 算法初学者,完全没有接触过算法,或者已经有少量刷题,对数据结构与算法有朦胧的理解,在会与不会之间反复横跳,那么这本书就是为您而写!本书能够带来:

    - -

    如果您是 算法熟练工,已经积累一定刷题量,接触过大多数题型,那么本书内容对你来说可能稍显基础,但仍能够带来以下价值:

    - -

    如果您是 算法大佬,请受我膜拜!希望您可以抽时间提出意见建议,或者一起参与创作,帮助各位同学获取更好的学习内容,感谢!

    0.1.2.   内容结构

    本书主要内容分为复杂度分析、数据结构、算法三个部分。

    hello_algo_mindmap

    -

    Fig. 知识点思维导图

    -

    复杂度分析

    首先介绍数据结构与算法的评价维度、算法效率的评估方法,引出了计算复杂度概念。

    接下来,从 函数渐近上界 入手,分别介绍了 时间复杂度空间复杂度,包括推算方法、常见类型、示例等。同时,剖析了 最差、最佳、平均 时间复杂度的联系与区别。

    @@ -1746,138 +1732,16 @@
  • 实现方法:完整的算法实现,以及优化措施;
  • 示例题目:结合例题加深理解;
  • -

    0.1.3.   配套代码

    -

    完整代码托管在 GitHub 仓库 ,皆可一键运行。

    -
    -

    前置工作

    -
      -
    1. 编程环境安装 ,若有请跳过
    2. -
    3. 代码下载与使用方法请见 如何使用本书
    4. -
    -
    -

    0.1.4.   风格约定

    +

    0.1.3.   本书定位

    +

    总体上看,我认为可将学习数据结构与算法的过程分为三个阶段。

    -
    -
    -
    -
    /* 标题注释,用于标注函数、类、测试样例等 */
    -
    -// 内容注释,用于详解代码
    -
    -/**
    - * 多行
    - * 注释
    - */
    -
    -
    -
    -
    /* 标题注释,用于标注函数、类、测试样例等 */
    -
    -// 内容注释,用于详解代码
    -
    -/**
    - * 多行
    - * 注释
    - */
    -
    -
    -
    -
    """ 标题注释,用于标注函数、类、测试样例等 """
    -
    -# 内容注释,用于详解代码
    -
    -"""
    -多行
    -注释
    -"""
    -
    -
    -
    -
    /* 标题注释,用于标注函数、类、测试样例等 */
    -
    -// 内容注释,用于详解代码
    -
    -/**
    - * 多行
    - * 注释
    - */
    -
    -
    -
    -
    /* 标题注释,用于标注函数、类、测试样例等 */
    -
    -// 内容注释,用于详解代码
    -
    -/**
    - * 多行
    - * 注释
    - */
    -
    -
    -
    -
    /* 标题注释,用于标注函数、类、测试样例等 */
    -
    -// 内容注释,用于详解代码
    -
    -/**
    - * 多行
    - * 注释
    - */
    -
    -
    -
    -
    /* 标题注释,用于标注函数、类、测试样例等 */
    -
    -// 内容注释,用于详解代码
    -
    -/**
    - * 多行
    - * 注释
    - */
    -
    -
    -
    -
    /* 标题注释,用于标注函数、类、测试样例等 */
    -
    -// 内容注释,用于详解代码
    -
    -/**
    - * 多行
    - * 注释
    - */
    -
    -
    -
    -
    /* 标题注释,用于标注函数、类、测试样例等 */
    -
    -// 内容注释,用于详解代码
    -
    -/**
    - * 多行
    - * 注释
    - */
    -
    -
    -
    -
    // 标题注释,用于标注函数、类、测试样例等
    -
    -// 内容注释,用于详解代码
    -
    -// 多行
    -// 注释
    -
    -
    -
    -
    -

    0.1.5.   本书特点 *

    -
    -默认折叠,可以跳过 +

    作为入门教程,本书主要对应「第一阶段」的学习内容,致力于使读者更高质量高效地开展第二、三阶段的学习。

    +

    learning_route

    +

    0.1.4.   本书特点

    以实践为主。我们知道,学习英语期间光啃书本是远远不够的,需要多听、多说、多写,在实践中培养语感、积累经验。编程语言也是一门语言,因此学习方法也应是类似的,需要多看优秀代码、多敲键盘、多思考代码逻辑。

    本书的理论部分占少量篇幅,主要分为两类:一是基础且必要的概念知识,以培养读者对于算法的感性认识;二是重要的分类、对比或总结,这是为了帮助你站在更高视角俯瞰各个知识点,形成连点成面的效果。

    实践部分主要由示例和代码组成。代码配有简要注释,复杂示例会尽可能地使用视觉化的形式呈现。我强烈建议读者对照着代码自己敲一遍,如果时间有限,也至少逐行读、复制并运行一遍,配合着讲解将代码吃透。

    @@ -1887,8 +1751,7 @@

    内容精简化。大多数的经典教科书,会把每个主题都讲的很透彻。虽然透彻性正是其获得读者青睐的原因,但对于想要快速入门的初学者来说,这些教材的实用性不足。本书会避免引入非必要的概念、名词、定义等,也避免展开不必要的理论分析,毕竟这不是一本真正意义上的教材,主要任务是尽快地带领读者入门。

    引入一些生活案例或趣味内容,非常适合作为知识点的引子或者解释的补充,但当融入过多额外元素时,内容会稍显冗长,也许反而使读者容易迷失、抓不住重点,这也是本书需要避免的。

    敲代码如同写字,“美”是统一的追求。本书力求美观的代码,保证规范的变量命名、统一的空格与换行、对齐的缩进、整齐的注释等。

    -
    -

    0.1.6.   致谢

    +

    0.1.5.   致谢

    本书的成书过程中,我获得了许多人的帮助,包括但不限于: