绪论0.5
大数据如何组织?如何处理?
- 基本数据组织和数据处理方法?
- 各种数据的逻辑结构描述?
- 各种数据的存储结构表示?
- 各种数据结构的运算定义?
- 设计实现运算的算法?
- 分析算法效率?
数据结构在C/C++进阶中的地位:
数据结构在计算机课程中的地位:
数据结构类比课程:
知识树进阶
- 掌握数据结构的“基本概念、基本原理、基本方法”,求解问题。
- 掌握算法基本的时间复杂度与空间复杂度的分析方法,能够设计出求解问题的高效算法。同一求解问题同长有多中实现短发,通过时间复杂度与空间复杂度的分析,找出最好的实现算法。例如,求1+2+...+n
int fun1(int n){ int i, s=0; for (i=1; i<=n; i++){ s+=1; } return s; } int fun2(int n){ return (n+1)*n/2; }
算法2好于算法1。
3. 理解各种数据结构的逻辑特性和存储结构设计。
4. 只有掌握了数据的存储结构,才能在此之上设计算法。
5. 利用各种数据结构来求解实际问题。(数据如何表示(选择合适的数据结构)?数据运算如何实现?数据运算如何高效实现?)
从用户的角度看数据,什么类型的逻辑结构,怎样运算描述【需要解决的任务:统计每个班的人数?统计每个专业的人数?统计学院的总人数?】。弄清求解的问题是什么:逻辑层面。实现求解问题:物理层面(或实现层面)。存储表示或映射哪种存储结构,
6. 演绎和归纳相结合。数据结构→演绎学习【鱼(内容):基本概念、基本原理和基本方法】→训练【练习(作业和编程)】→归纳总结【渔(方法):求解问题的能力】。培根曾说:The methods are old, the problems are new(方法是旧的,问题是新的)。
7. 数据结构与算法设计密不可分的。可以参考,ACM CS-2013:计算机科学分支的核心知识领域。知识领域之一:AL-Algorithm and Complexity。
挑战赛进阶
牛客网,
PKU JudgeOnline
HDU Online Judge System
【2】 经典编程书籍。
【3】 软件工程、算法与架构。
【zlc】