数据结构复习——第一章:绪论

来源:互联网 发布:js中substring源码 编辑:程序博客网 时间:2024/04/30 09:39

1.数据:信息的载体,能被计算机识别、存储和加工处理。


2.数据元素:数据的基本单位,可由若干个数据项组成,数据项是具有独立含义的最小标识单位。


3.数据结构:数据之间的相互关系,即数据的组织形式。

它包括:

   1)数据的逻辑结构,从逻辑关系上描述数据,与数据存储无关,独立于计算机;

   2)数据的存储结构,是逻辑结构用计算机语言的实现,依赖于计算机语言。

   3)数据的运算,定义在逻辑结构上,每种逻辑结构都有一个运算集合。常用的运算:检索/插入/删除/更新/排序。

 

4.数据的逻辑结构可以看作是从具体问题抽象出来的数学模型。数据的存储结构是逻辑结构用计算机语言的实现。

 

5.数据类型:一个值的集合及在值上定义的一组操作的总称。分为:原子类型和结构类型。

 

6.抽象数据类型:抽象数据的组织和与之相关的操作。优点:将数据和操作封装在一起实现了信息隐藏。

 

7.抽象数据类型ADT:是在概念层上描述问题;类:是在实现层上描述问题;在应用层上操作对象(类的实例)解决问题。

 

8.数据的逻辑结构,简称为数据结构,有:

  (1)线性结构,若结构是非空集则仅有一个开始和终端结点,并且所有结点最多只有一个直接前趋和后继。

  (2)非线性结构,一个结点可能有多个直接前趋和后继。

 

9.数据的存储结构有:

   1)顺序存储,把逻辑相邻的结点存储在物理上相邻的存储单元内。

   2)链接存储,结点间的逻辑关系由附加指针字段表示。

   3)索引存储,存储结点信息的同时,建立附加索引表,有稠密索引和稀疏索引。

   4)散列存储,按结点的关键字直接计算出存储地址。

 

10.算法是为了解决某类问题而规定的一个有限长的操作序列。一个算法必须满足以下个重要特性

   1)有穷性:算法中的每个步骤都能在有限时间内完成。

   2)确定性算法中每一条指令必须有确切的含义,读者理解时不会产生二义性。

   3)可行性:算法中的所有操作都必须足够基本,都可以通过已经实现的基本操作运算有限次实现之。

   4)有输入

   5)有输出


11:算法设计的原则(目标):

   正确性、可读性、健壮性、高效性


12.评价算法的好坏是:
   算法是正确的;执行算法所耗的时间;执行算法的存储空间(辅助存储空间);易于理解、编码、调试。

 

13.算法的时间复杂度T(n):是该算法的时间耗费,是求解问题规模n的函数。记为O(n)。

   时间复杂度按数量级递增排列依次为:常数阶O(1)、对数阶O(log2n)、线性阶O(n)、线性对数阶O(nlog2n)、平方阶      O(n^2)、立方阶O(n^3)、……k次方阶O(n^k)、指数阶O(2^n)。

   算法的空间复杂度S(n):是该算法的空间耗费,是求解问题规模n的函数。

 

14.算法衡量:是用时间复杂度和空间复杂度来衡量的,它们合称算法的复杂度。


15. 算法中语句的频度不仅与问题规模有关,还与输入实例中各元素的取值相关。

0 0