ADS期中抱佛脚

1.avl tree:

插入看从trouble maker开始往不满足的点的路径中,靠近不满足的点的三代,是RR还是LL还是RL还是LR,如果是LR的,则最下面的节点作为中间节点,如果是RR,则左右互换。

要求通过左右子树到叶子的路径长度相差不超过1

2.splay tree:

要求访问一次就换到根上

插入或者访问如何换到根上:该节点往上看三代,如果是RL或者LR,则换到中间,这个叫做zig-zag

如果是LL或者RR,则倒过来连。这个叫做zig-zig

子树的连接,全部看如何满足二叉树。

3.红黑树

插入:如果叔叔是红色,直接叔叔和父亲变为黑色,爷爷变为红色,传递上去

如果叔叔是黑色,必须把父亲和自己转为RR或者LL,然后绕着爷爷转,转完以后,叔叔父亲变为红色(和上一个想反)爷爷和另一个变为黑色

删除:删除红色叶子:直接删

删除度数为1的点(只能是黑色):把其孩子涂成黑色替换他

删除度数为2的节点:用左边最大或者右边最小替换它,然后删除那个节点

删除黑色叶子:可能需要递归解决

4.Bin树

插入:总是和自己节点相同的树合并,然后进位,只要常数时间

复杂度总结:

复杂度
avlO(logN)
splay摊销均为O(logN),最坏情况是O(N^2)
binominal queue除了插入N个最坏是O(N),插入一个最坏是O(1),其他是O(logN)
红黑树插入O(logN),删除最坏为O(logN)

master的三种方法:

判断分别为:N^logab和f(N),af(N/b)和f(N),a^k和b

比较的是叶子问题求和与合并时候的复杂度,如果叶子复杂度高,则为N^logba,如果是合并复杂度高,就是f(N)

注意,第二种只能差常数倍才行

注意相等的时候,分别为:N^logbaf(N), f(N)logbN,f(N)logN

5.搜索

注意:relevant是取回的中,相关度

recall是相关的中,取回的比例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值