分治算法小结

分治算法与二分搜索树
对于分治算法来说,其算法设计策略主要分为三个步骤:
1.我们要讲一个大问题分解成一些列规模大小基本相同的子问题
2.解决这些子问题(这里通常会用到一些递归法)
3.最后将其结果合并。
这种策略可用的主要基础来自其工作量的平衡性。典型情况下,它能帮我们讲一个复杂度平方级别的运算降低到线性级别。我们所介绍的归并排序,快速排序以及集合中的最近点怼问题都是这方面的重要例子。
在某些情况下(例如在某有序序列中搜索,或选取中间项时),我们还可以剪枝掉相关子问题以外的分支问题,以获取从根节点道相关叶节点之间的子问题路径,从而产生一些更为有效的算法。

另外这些子问题的结构也是可以用二分搜索树来明确表示的。该树上的每个节点都大于其左子树上的所有节点,而小于其右子树上的所有节点。这意味着:
1.二分搜索树可以通过根节点的遍历来实现。
2.另外如果我们直接向其插入一些随机值,搜索树本身在通常情况下是依然能维持平衡的,但也可能通过某些节点划分为或转换操作来对树结构进行再平衡,以确保在最糟糕的情况下仍只需对数级运行时间。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值