第一章——绪论

1.1数据结构的组成

  数据结构:通过研究、分析数据本身的特点,利用这些特点提高数据表示和处理的效率。

  PS:信息的表示和组织形式直接影响到数据处理的效率!

1.2数据结构的发展概况及地位

1.4抽象数据类型(ADT)

数据模型+一组操作

数据结构+一组操作

一个数据类型的实现一般分为三个阶段:

1.ADT阶段,又称为定义阶段。

2.虚拟数据类型阶段,有称为表示阶段。

3.物理数据类型阶段,又称为物理实现阶段。

数据结构、抽象数据类型、数据类型、存储结构的关系?

1.5算法的基础知识

一、算法的定义及特性

    算法是解决问题的一种方法,即它给出了求解问题的步骤描述。

  1.算法的特性或要素:有穷性、确定性、可行性、输入(0或多个)和输出(至少一个)。

  2.算法与数据类型的关系

  3.算法与程序的区别

二、算法的描述

    1.自然语言描述:容易,但有时啰嗦、有二义性。

    2.图示:直观清晰,但不宜实现

    3.算法语言:严谨、简洁,易用程序实现。

    4.程序设计语言:可以直接运行,但太严格。

三、算法的评价标准

    正确性、易读性、健壮性、效率(时间以及空间)

    PS:多写注释四、算法分析

    算法分析:估量一个算法效率的方法

1.算法分析的方法

  先验估计(事前估计):根据算法的逻辑特征(基本操作的次数)来估算。

        优点:可比性强。

        缺点:不精确,仅仅只是估计。

  经验测试(事后计算):选择样本数据、运行环境运行算法计算出空间、时间。

        优点:精确。

        缺点:可比性差,效率低,成本高。

2.算法分析的一般步骤

  语句频度:算法中一个基本操作执行的次数

  1.计算出算法的各个语句的频度

  2.统计出算法的语句频度和T(n)    //n是问题的规模

  3.给出T(n)的大O表示法  称算法的时间复杂度 T(n)=O(f(n))

3.最好时间复杂性、最坏时间复杂性、平均时间复杂性

  对于有些算法,问题规模形同,如果输入集不同,其效率不同

4.O表示的含义——渐进算法分析

5.常见时间复杂度

  O(1)   O(log(2)n)  O(n)  O(nlog2n)  O(n*n)  O(n*n*n)  O(2(n))


 

      时间复杂度增大

 

6.渐进复杂性分析的重要性

  计算机本身性能的提高不能带来求解问题规模的增益

 

复习小结

1.抽象数据类型的概念:

2.抽象数据类型的定义:

3.抽象数据类型的实现阶段:

4.算法的概念:

5.算法的特性

6.算法的评价

7.算法分析

 

posted @ 2017-08-04 16:49  startor  阅读(281)  评论(0编辑  收藏  举报