数据结构 第一章笔记整理

1.1数据结构在程序设计中的作用

数据结构+算法=程序。

1.2本书讨论的主要内容

计算机能够求解的问题一般可以分为数值问题和非数值问题。数值问题抽象出的数据模型通常是数学方程,非数值问题抽象出的数学模型通常是线性表、树、图等数据结构。本书讨论非数值问题的数据组织和处理,主要内容有如下4点:

一、数据的逻辑结构:线性表、树、图等数据结构,其核心是如何组织待处理的数据以及数据之间的关系。

二、数据的存储结构:如何将线性表、树、图等数据结构存储到计算机的存储器中,其核心是如何有效地处理数据。

三、算法:如何基于数据的某种存储结构实现插入、删除、查找等基本操作,其核心是如何有效地处理数据。

四、常用数据处理技术:包括查找技术、排序技术、索引技术等。

1.3   数据结构的基本概念

1.3.1数据结构

1、 数据:信息的载体,在计算机科学中是指所有能输入到计算机中并能被计算机程序识别和处理的符号集合。

2、数据元素:数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。

3、数据项:构成数据元素的不可分割的最小单位。

 4、数据的逻辑结构:数据元素之间逻辑关系的整体, 可分为四类:集合、线性结构、树结构、图结构。

5、数据的存储结构(物理结构):是数据及其逻辑结构在计算机中的表示。

 通常有两种:                        

顺序存储结构的基本思想是:用一组连续的存储单元依次存储数据元素,数据元素之间的逻辑关系由元素的存储位置来表示。

链式存储结构的基本思想是:用一组任意的存储单元存储数据元素,数据元素之间的逻辑关系用指针来表示。

数据的逻辑结构是从具体的问题抽象出来的数据模型,是面向问题的,反映了数据元素之间的关联方式或邻接关系。数据的存储结构是面向计算机的,其基本目标是将数据及其逻辑关系存储到计算机的内存中。为了区别于数据的存储结构,常常将数据的逻辑结构称为数据结构

1.3.2抽象数据类型

1.数据类型:一组值的集合及定义与这个值集上的一组操作的总称,规定了该类型数据的取值范围和对这些数据所能采取的操作。

2.抽象:抽出问题本质特征而忽略其非本质的细节,是对具体事物的一个概括。

3.抽象数据类型: 一个数据结构及定义在该结构上的一组操作的总称。

数据类型和ADT的区别在于:数据类型指高级程序设计语言支持的基本数据类型,ADT指自定义的数据类型。


1.4 算法及算法分析

1.4.1 算法及其描述方法:

算法:对特定问题求解步骤的一种描述,是指令的有限序列。算法必须满足下列5个重要特性:输入、输出、有穷性、确定性和可行性。

好算法要满足算法的五大特性,此外具备  :正确性、健壮性、简单性、抽象分级和高效性。

算法的描述方法:自然语言、流程图、程序设计语言、伪代码。

  1.4.2 算法分析

度量算法效率的方法:我们通常会采用另一种方法:事前分析估算的方法----渐进复杂度

算法的时间复杂度:当问题规模充分大时,算法中基本语句的执行次数在渐进意义下的阶,称作算法的渐进时间复杂度,简称时间复杂度,通常用大O(读作“大欧”)记号表示。

最好、最坏和平均情况

算法的空间复杂度: 算法的空间复杂度是指在算法的执行过程中,需要的辅助空间数量。辅助空间是除算法本身和输入输出数据所占据的空间外,算法临时开辟的存储空间。

算法分析举例:分析算法时间复杂度:找出所有语句中执行次数最大的那条语句作为基本语句,计算基本语句的执行次数,取其数量级放入大O中即可。






你可能感兴趣的:(数据结构 第一章笔记整理)