Skip to content

Latest commit

 

History

History
106 lines (71 loc) · 3.38 KB

顶层理解.md

File metadata and controls

106 lines (71 loc) · 3.38 KB

数据结构学习的 5 个层次。

  1. 对数据结构与算法核心地位的充分理解与认同;
  2. 从软件视角对处理器、存储器、显示器等硬件资源的透彻理解;
  3. 通过编程以软件方式实现数据结构与算法的能力;
  4. 基于恰当的数据结构与算法设计并实现大型结构化组件及其之�通讯接口的能力;
  5. 运用软件工程原理与技术确保软件鲁棒性、可靠性及其面向特定目标受众的针对性的能力。
  • 第 1 章(入门)
    • 计算与算法的一般性概念;
    • 确立时空复杂度的度量标准;
    • 以递归为例介绍算法设计的一般模式;
  • 第 2 章 —— 第 7 章(研读重点)
    • 基础部分:序列、树、图、初级搜索树;
    • 基本数据结构及其算法的实现和性能分析;
  • 第 8 章 —— 第 10 章(关注计算效率)
    • 进阶部分:高级搜索树、词典、优先级队列;
  • 第 11 章 —— 第 12 章(优化及调校)
    • 串排序、高级排序算法;
    • 深入理解各类数据结构与算法在不同实际环境中适用性的微妙差异。

注重整体认识,着眼系统思维。

强化计算思维 (computational thinking)。

方法论 的角度掌握利用计算求解问题的一般规律和方法。

逻辑结构 的角度,将数据结构分为 3 个层次。

  • 线性;
  • 半线性;
  • 非线性。

以遍历算法为线索,点明不同层次之间相互转换的技巧。

算法策略 的角度。

  • 动态规划;
  • 减而治之;
  • 分而治之;

将人所擅长的概括化简思维方式与计算机强大的枚举迭代能力结合,高效求解实际应用问题。

数据元素 访问形式的角度。

  • 循秩访问;
  • 循位置访问;
  • 循连接访问;
  • 循关键码访问;
  • 循值访问;
  • 循优先级访问;

对各种数据结构进行归类,并指明它们之间的联系与区别。

代数判定树模型以及对应的下界。

如何针对具体计算模型确定特定问题的复杂度下界?

本科毕业生的要求:

  1. 计算机技术可以做什么?(possibilities)
  2. 如何做?
  3. 不能做什么?(limitations)
  4. 为什么不能做?

尊重认知规律,放眼拓展提升。

学有所乐,学有所获。

计算机科学有其独特的认知规律。

  • 记忆 (remember);
  • 理解 (understand);
  • 应用 (apply);
  • 分析 (analyze);
  • 评估 (evaluate);
  • 创造 (create)。

学习方法。

  • 插图:知识点具体化、形象化;
  • 对比:认识更加全面而深刻;
  • 应用:行胜于言;
  • 分析与评估:掌握典型的分析技巧和方法论;

习题是强化和提升学习效果的必由之途,否则无异于 “入宝山而空返”。

该部分一共有 270 多道习题。

好的习题不限于对知识的重复堆砌,更多地侧重拓展与反思。

  • 对数据结构接口的扩充;
  • 对算法性能的改进;
  • 通过查阅文献资料补充相关的知识点;
  • 难度极大或过程繁琐的内容,以习题的形式进行一步探讨;

求知求真的过程中,质疑与批判是难能可贵的精神。

反诘与反思是创造创新的起点。

从吸收到反思,在某种意义上就是学习 (learning) 与反学习 (unlearning) 反复迭代、不断上升的过程。

数据结构资料