数据结构定理

来源:互联网 发布:北京奥运会会徽知乎 编辑:程序博客网 时间:2024/06/10 19:40

1.
如果总是按一个乘法因子来增加数组长度,那么实施一系列线性表的操作所需要的时间与不用改变数组长度时相比,至多增加一个常数因子。

2 基数分解
把数分解成数字需要除法和取模操作:
对于一般的基数r,相应的分解式为:
X%r; (X%r^2)/r; (X%r^3)/r^@;
例如:
如果用基数10来分解则最低位到最高位为:
x%10; x%100/10; x%1000/100;
当使用基数r=n对0~n^c-1范围内的n个整数进行分解时,每个数可以分解出c个数字.因此,对n个数字,可以用c次range=n的箱子排序.因为c是一个常量,所以整个排序时间为O(cn)=O(n).

3.并查集
如果开始时有n个类,每个类有一个元素,则在执行u次合并操作以后:
一. 任何一个类的元素都不会超过u+1.
二. 至少存在n-2u个单元素类.
三. u < n
1次初始化和f次查找的复杂度为O(n+f).
1次初始化、u次合并操作和f次搜索的复杂度为O(n+ulogu+f).

原创粉丝点击