绪论0.5

大数据如何组织?如何处理?

  • 基本数据组织和数据处理方法?
  • 各种数据的逻辑结构描述?
  • 各种数据的存储结构表示?
  • 各种数据结构的运算定义?
  • 设计实现运算的算法?
  • 分析算法效率?

  数据结构在C/C++进阶中的地位:

  数据结构在计算机课程中的地位:

  

  数据结构类比课程:


 

知识树进阶

  1. 掌握数据结构的“基本概念、基本原理、基本方法”,求解问题。
  2. 掌握算法基本的时间复杂度与空间复杂度的分析方法,能够设计出求解问题的高效算法。同一求解问题同长有多中实现短发,通过时间复杂度与空间复杂度的分析,找出最好的实现算法。例如,求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

                                                入门OJ

                         Online Judge

       ACM             TOPCODER                      

项目进阶

  建议:到开源社区找一些有趣的与数据结构与算法分析相关的项目练手。

  【1】 gitbook,看书。

  【2】 经典编程书籍。

  【3】 软件工程、算法与架构。

  

 

 

 

posted @ 2020-07-15 22:52  望星草  阅读(132)  评论(0编辑  收藏  举报