HOME
NAVIGATION

数据结构与算法(1)——一些基本概念

☞数据结构与算法的合集

0.逻辑结构和物理结构

数据结构分为:
  • 逻辑结构:数据对象中数据元素之间的相互关系
  • 物理结构:数据的逻辑结构在计算机中的存储形式
四大逻辑结构
  • 集合结构:集合结构中的数据元素除了同属于一个集合外,他们之前没有别的关系
  • 线性结构:线性结构中的数据元素之间是一对一的关系
  • 树形结构:树形结构中的数据元素之间存在一种一对多(也存在一对一的关系)的层次关系(金字塔关系)
  • 图形结构:图形结构的数据元素是多对多的关系
物理结构:

研究如何把数据元素存储到计算机的存储器中。

存储器:

针对内存而言的,像硬盘、软盘、光盘等外部存储器的数据组织通常用文件结构来描述。

数据元素的存储结构形式有两种:顺序存储和链式存储。
  • 顺序存储结构:把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的。 (例如数组)
  • 链式存储结构:是把数据元素存放在任意的存储单元里,这组存储单元可以是连续的, 也可以是不连续的。链式存储结构的数据元素存储关系不能反映其逻辑关系,因此需要用一个指针存放数据元素的地址,这样子通过地址就可以找到相关联数据元素的位置。(1号数据元素指针指向2号数据元素,但是他们在存储单元里的位置可能不是这样的。

1.算法:

事前分析测量方法:
  • 算法采用的策略、方案
  • 编译产生的代码质量:编译期的优劣、编译期所产生的代码的优劣
  • 问题的输入规模
  • 机器执行指令的速度

由此可见,抛开计算机硬件、软件有关的因素, 一个程序的运行时间依赖于算法的好坏问题的输入规模(就是输入量的多少)

研究算法的复杂度,侧重严重算法随着输入规模扩大增长量的一个抽象,而不是精确地定位需要执行多少次,因为如果这样的话,我们就得考虑回编译期优化等问题。 我们在分析一个算法的运行时间时,重要的是把基本操作的数量和输入模式关联起来。