数据结构与算法
什么是算法
算法及其基本特征
算法是指对解决方案的准确而完整的描述。(解决问题的操作步骤)
基本特征:
(1). 可行性:步骤可以实现;执行结果达到预期目的。
(2). 确定性:步骤确定,不摸棱两可,不准有多义性。
(3). 有穷性:有限的时间完成。
(4). 拥有足够的情报:算法在拥有足够的输入信号和初级化信息时,才是有效的;当有提供的情报不够时,算法可能无效。
算法复杂度
衡量算法优劣,包括算法时间复杂度和空间复杂度。
-
算法时间复杂度
执行算法时间所需要的工作量。
用算法执行所执行的基本运算次数来度量的。(基本运算次数与问题规模有关)
-
算法空间复杂度
执行算法所需要的内存空间。
储存空间:
(1). 输入数据所占储存空间;
(2).程序本身所占存储空间;
(3).算法执行过程所需要的额外空间。
额外空间包括程序执行过程中的工作单元以及某种数据结构所需要的附加储存空间
为降低算法空间复杂度主要减少(1)和(3),采用存储压缩技术。
数据结构的基本概念
什么是数据结构
相互有关联的数据元素集合
数据和结构
数据:需要处理的数据元素的集合,一般来说,这些数据元素具有某个共同特征。
结构:就是关系,是集合中各个数据元素之间存在的某种关系(或联系)。
前后件关系:直接前驱与直接后继
数据结构分为数据的逻辑结构和数据的储存结构。
数据的逻辑结构反映元素之间逻辑关系(前后件关系)的数据结构
数据的储存结构又称为数据的物理结构,是数据逻辑结构在计算机存储空间中的存放方式
数据结构的表示
数学形式定义——数据结构是一个二元组:
B=(D,R)
B表示数据结构,D表示数据元素的集合,R是D关系上的集合
R反映D中各数据元素之间的前后件关系