3.4渐近分析
1.渐近算法分析:估算算法运行时间或者其他开销的增长率时,常忽略系数,将注意力集中在增长率上。
局限性:当算法要解决的问题规模n很小时,系数会取到举足轻重的作用,此时不能忽略。
2.上限:O(f(n)):大欧表示法,表示某个算法在最差情况下的增长率为f(n).
T(n):算法实际运行时间.
大O表示法:对于非负函数T(n),如果存在两个正常数c和n0,对任意n>n0,有T(n)<=cg(n),则称T(n)在集合O(g(n))中.(注意:与大O表示法不同的是,该定义不要求所有大于常数n0的n,都有T(n)>=cg(n)成立,其只要求这种情况发生的足够多足够频繁。)
3.下限:Ω(f(n)),表示某个算法在最好情况下的增长率.
Ω表示法定义:若存在两个正常数c和n0,对于n>n0,有T(n)>=cg(n),则称T(n)在集合Ω(g(n))中.
4.Θ表示法:当上下限相等时,可以用Θ表示法,即一种算法既在O(h(n))中,又在Ω(h(n))中,则称其为Θ(h(n)).
5.化简法则:
①若f(n)在O(g(n))中,且g(n)在O(h(n))中,则f(n)在O(h(n))中;
②若f(n)在O(kg(n))中,对于任意常数k>0成立,则f(n)在O(g(n))中;
③若f1(n)在O(g1(n))中,且f2(n)在O(g2(n))中,则f1(n)+f2(n)在O(max(g1(n),g2(n))中;
④若f1(n)在O(g1(n))中,且f2(n)在O(g2(n))中,则f1(n)f2(n)在O(g1(n)g2(n))中.
数据结构概念
1.数据:对客观事物的符号表示,指所有能输入到计算机中并被计算机程序处理的符号的总称,包括:整数、实数、字符串、图形和声音等。
2.数据元素:数据的基本单位,常作为一个整理来进行考虑和处理,比如:一本书的数目信息。博弈树中的一个格局等。一个数据元素可以包含若干个数据项,如:一本书的书名、作者、出版社等。
3.数据项:数据项是数据的不可分隔的最小单位,也是数据集合的最小可命名单位。
4.类型:一组性质相同的值的集合。
5.数据类型:一组性质相同的值的集合以及定义在这个值集合上的一组操作的总称。
6.数据对象:是性质相同的数据元素的集合,是数据的一个子集。
7.结构(数据的逻辑结构)
数据元素之间的相互关系(指逻辑关系),常见结构包括:
-
集合:结构中的数据元素除了同属于一个集合外,没有其他关系。
-
线性结构:结构中数据元素之间存在一个一对一的关系;除了第一个数据元素外,每个数据元素有且仅有一个直接前驱,第一个数据元素没有直接前驱,除了最后一个数据元素外,每个数据元素有且仅有一个直接后继,最后一个数据元素没有直接后继。
-
树形结构(或层次结构):结构中的数据元素之间存在一对多的关系。
-
图状结构(或网状结构):结构中的数据元素之间存在一对多的关系。
8.数据的存储结构(物理结构) -
数据结构是数据在计算机存储、组织的方式。是ADT的具体实现。
-
常见的存储结构包括:顺序存储、链式存储、索引存储、哈希表。
9.数据结构: -
数据结构是数据在计算机存储、组织的方式,是ADT的物理实现。
-
是相互之间存在一种或多种特定关系的数据元素的集合。
10.物理数据类型:数据项在计算机中的表示(映像)称为数据的物理(存储)结构,包括对数据项及其关系在计算机中的存储,也包括ADT在计算机中的具体实现。
11.抽象数据类型(ADT) -
是对数据类型的逻辑性是的规范化描述。一个ADT的定义并不涉及它的实现细节,这些实现细节对于ADT的用户是隐藏的。
-
常包括:数据对象、数据关系(逻辑数据结构)和基本操作(和数据结构相关的基本运算)。
其他零散:
1.顺序文件:如果文件记录的逻辑次序是按关键码递增(或递减)次序定义的,并且在外存储器上是按同样的次序排列的,则这种文件叫做顺序文件。