1.数据类型:一组性质相同的数据的集合及该数据集合上的操作的总称。 如JAVA中的int类型、数据的集合-2147483648~2147483647、数据的加减乘除求余等
2.抽象数据类型:abstract data type (ADT)。 由一组数据模型及该模型的一组操作组成。
抽象数据类型一般使用一个三元组表示:ADT = (D,S,P) D是数据对象,S是D上的关系,P是D上的操作
在定义抽象数据类型用以下格式: ADT抽象数据类型名{
数据对象:<数据对象的定义>
数据关系:<数据关系的定义>
数据操作:<基本操作的定义>
}
抽象数据类型可以对应一个JAVA类,数据对象与数据关系可以通过类的成员变量来储存或者表示,数据操作可以使用方法来实现
3.算法:算法就是为解决某一特定问题而规定的一系列的操作,是一组有序的指令的集合。
算法有一个特性:输入:一个算法有0个或者多个输入
输出:至少有一个输出,没有输出的算法没有意义
有穷性:算法中执行指令的个数是有限的,执行有穷的步骤后能结束
确定性:对于特定的合法输入它的输出应该是唯一的
可行性:算法能够实现,并且在有限的时间内可以完成。
算法设计需求: 正确性:没有语法错误,对于合法的输入产生满足要求的输出,对于特定的输入也能够产生正确的输出。
可读性:算法另一个目的是为了交流,方便阅读
健壮性:对于不合理的要求能够给出合理的提示信息
评价算法的好坏实际上就是评价算法占用的资源占用率
4.时间复杂度:讨论计算机程序运行的时间可以采用以下方法:1、事后统计:编程实现这个算法,统计所需要的时间
2、事前分析:采用渐进时间复杂度分析估算
渐进时间复杂度,简称时间复杂度,在进行算法分析时,语句总的执行次数,计作T(n),是关于问题规模n的函数,分析T(n)随着问题规模n的增大,算法执行的时间增长率和f(n)函数的增长率相同,f(n)是问题规模n的一个函数
随着输入规模n的增大,T(n)的增长越慢越好
5.空间复杂度: 为了求解某一问题,在执行操作期间所需要的存储空间大小。