常见的时间复杂度所耗的时间从小到大依次是:
O(1) < O(logn) < (n) < O(nlogn) < O(n^2) < O(n^3) < O(2^n) < O(n!) < O(n^n)
算法的空间复杂度通过计算算法所需的储存空间实现,算法的空间复杂度的计算公式记作:
S(n) = O(f(n)),其中,n为问题的规模,f(n)为语句关于n所占存储空间的函数
通常,我们都是用“时间复杂度”来指以运行时间的需求,是用“空间复杂度”指空间的需求。
当直接要让我们求“复杂度”时,通常指的是时间复杂度。
线性表的定义
线性表(List):由零个或多个数据元素组成的有限数列。
关键的地方:
- 首先它是一个序列,也就是说元素之间是有个先来后到的
- 若元素存在多个,则第一个元素无前驱,最后一个元素无后继,其他元素都只有且只有一个前驱和后继。
- 另外,线性表强调是有限的,事实上无论计算机发展到多强大,它所处理的元素都是有限的。
- 当线性表元素的个数n(n>=0)定义为线性表的长度,当n = 0时,称为空表。
数据类型的定义:
是指一组性质相同的值的集合及定义在此集合上的一些操作的总称。
数据类型可以分为两类:
- 原子类型:不可再分解的基本类型,列如整型、浮点型、字符型等。
- 结构类型:由若干个类型组合而成,是可以再分解的,例如整型数组是由若干个整型数据组成的。