4. 抽象数据类型
抽象数据类型简称ADT(Abstract Data Type),是指一个数学模型以及定义在该模型上的一组操作。
5. 抽象数据类型的作用
以浅显易懂的语言描述某一个数学模型的操作流程,而且只要其数学特性不变,都不会影响外部使用。
6. 算法基础
(1)算法有哪几个特性?
a. 有穷性——在有穷步之后结束
b. 确定性——不存在二义性
c. 可行性——能够在计算机中执行
d. 输入——有零个或多个输入
e. 输出——有一个或者多个输出。没有输出的算法是没有意义的。
(2)算法和计算机程序的区别是什么?
算法是一种思维过程,不局限于任何一种编程语言;而计算机程序则是由一种确定的编程语言所编写,是算法的具体实现形式。
(3)一个好的算法应该具备哪些特性?
a. 正确性;
b. 可读性;
c. 健壮性;
d. 通用性;
e. 效率与存储量要求——效率指的是采用该算法的程序执行的时间;存储量需求指的是采用该算法的程序在执行过程中所需要的最大存储空间。一般来说,这与问题的规模有关。
(4)与算法时间复杂度有关的多项式的大小比较
O(1)<O(㏒n)<O(n)<O(n㏒n)<O(n的平方)<O(n的三次方);
指数关系为:O(2的n次方)<O(n!)<O(n的n次方)。
(5)算法的空间复杂度是指什么?
是指算法编写成程序之后,在计算机中运行时所需存储空间大小的度量。记作S(n)=O(f(n)),其中n为问题的规模。而存储空间则一般包三个方面:
a)指令常量变量所占用的存储空间;
b)输入数据所占用的存储空间;
c)辅助空间。
一般的,算法的空间复杂度指的是辅助空间。