数据结构与算法(一)基础知识

2019-01-26  本文已影响0人  小的橘子
数据结构与算法(一)基础知识

程序 = 数据结构 + 算法

想让你的程序拥有天才般的灵魂,就一起学习数据结构和算法吧


基本概念和术语

1. 数据

数据:是描述客观事物的符号,是计算机中可操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。

整型、浮点型等数值类型及字符、声音、图像等非数值数据都属于数据。

2. 数据元素

数据元素:是组成数据的,有一定意义的基本单位,在计算机中通常作为整体处理,也被称为记录。

例如学校学生作为数据,某个学生就可以看作组成学生数据的基本单位。

3. 数据项

数据项:一个数据元素可以由若干个数据项组成。

例如学生元素(也就是学生记录)可以看作由学号、姓名、性别、院系和班级等数据项组成。

4. 数据对象

数据对象:是性质相同的数据元素的集合,是数据的子集。

例如将大一学生就可以看作数据对象,因为他们有这大一新生的共同性质;当然也可以把所有男生学生看作数据对象,因为他们共性就是男的。

5. 数据结构

数据结构:相互之间存在一种或多种特定关系的数据元素集合

现实世界中,任何事物都有内在联系,不会孤立存在,同样计算机中,数据元素也不是孤立存在,杂乱无序的,而是具有内在联系的数据集合。例如一个学校的组成


学校组成结构

数据的逻辑结构和存储结构

逻辑结构

  1. 集合结构
    集合结构中的数据元素除了同属于一个集合外,没有其他关系。例如下面的正整数集合。


    集合结构
  2. 线性结构
    线性结构中的数据元素是一对一的关系。数据元素有一种先后次序关系,如下图,其中a是b的前驱,b是a的后继
    线性结构
  3. 树形结构
    树形结构中的数据元素之间存在一种一对多的层次关系


    树形结构
  4. 图结构
    图形结构的数据元素是多对多的关系


    图结构

存储结构(也称为物理结构)

  1. 顺序存储结构
    把数据元素存放在一段连续的存储单元中,数据元素间逻辑关系和物理关系一致。


    顺序存储结构
  2. 链式存储结构
    把数据元素存储在任意的存储单元中,存储单元可以连续,也可以不连续,存储关系并不能反映其逻辑关系,因此需要借助指针来表示数据元素之间的逻辑关系。如下图,箭头指向可以看作指针指向。


    链式存储结构

算法介绍

程序=算法+数据结构
数据结构是算法实现的基础,算法总要依赖某种数据结构来实现。算法操作对象是数据结构。

算法:算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。

算法的五大特性

算法设计的4个目标

算法效率度量

1. 事后统计方法

故常采用事前分析估算方法评价算法好坏

2. 事前分析估算方法

除去语言级别、机器执行指令速度等影响,算法效率可以通过问题的规模来衡量。也就是评估其时间复杂度空间复杂度,关于该部分下节分析。

上一篇下一篇

猜你喜欢

热点阅读