一、基本概念
1、数据结构:指相互之间存在一定关系的数据元素的集合。
2、数据:信息的载体,在计算机科学中是指所有能输入到计算机中并能被计算机程序识别和处理的符号集合。
3、数据元素:数据的基本单位。
4、数据项:构成元素的不可分割的最小单位。
二、分类
根据数据元素之间逻辑关系的不同,数据结构分为以下四类。
(1)集合:数据元素之间就是属于同一个集合,除此之外,没有任何关系。
(2)线性结构:数据元素之存在一对一的线性关系。
(3)树结构:数据元素之间存在一对多的层次关系。
(4)图结构:数据元素之间存在多对多的关系。
三、抽象数据类型
1、数据类型
数据类型是一组值的集合以及定义与这个值集上的一组操作总称。
2、抽象
抽象就是抽出问题本质的特征而忽略非本质的细节,是对具体事务的一个概括。
3、抽象数据类型
抽象数据类型是一个数据结构以及定义在该结构上的一组操作的总称。
四、算法及算法分析
1、算法:是指解决问题的方法。
2、算法必须满足的五个重要特性。
(1)输入:一个算法有零个或多个输入,这些输入通常取自于某个特定的对象集合。
(2)输出:一个算法有一个或多个输出,通常输出与输入之间有着特定的关系。
(3)有穷性:一个算法必须总是在执行有穷步骤后结束,且每一步都在有穷时间内完成。
(4)确定性:算法中每一条指令必须有确切的含义。
(5)可行性:算法描述的操作可以通过已经实现的基本操作执行有限次来实现。
3、算法的描述方法
(1)自然语言
优点:容易理解。缺点:容易出现二义性。
(2)流程图
优点:直观易懂。缺点:严密性差。
(3)程序设计语言
(4)伪代码:被称为算法语言或第一语言。
4、算法分析
(1)度量算法效率的方法
事前分析估算的方法——渐进发杂度
(2)算法的时间复杂度
若存在两个正常数c和n。,对于任意数n>=n。,都有T<=c*f(n),则称T(n)=O(f(n))(或称算法在O(f(n)中)。
(3)算法的空间复杂度
算法临时开辟的存储空间。通常记做S(n)=O(f(n)),n为问题规模,分析方法与算法的时间复杂度类似。