第5章:分治法——《算法笔记

原问题分解为多个子问题

 

1.合并排序(快排的子问题)

合并两个已经排序的序列

 

2.快速排序

划分排序,对小数组插排

 

3.树的遍历

前序中序后序

 

4.大整数乘法,Stanssen矩阵乘法

大整数分解为高低位,平方和公式

 

5.最近对与凸包

 

最近对:点集沿一个轴方向均分,d=min(dl,dr)   考察宽为d的中间带中的点间距离

 

凸包:最左右点连线划分上下包,选最远且角度最大的点。。。

 

习题

5.1

最大元素:分治

同时求最大最小

 

计算指数

 

计算倒置数目???

 

倒置角度分析排序???

 

5.2.

快排性质

 

限位器:防止越界访问

 

各种排序算法的边界效益 比较

 

正负数划分

 

螺丝螺母配对

螺丝间,螺母间不允许比较

螺母作为螺丝的划分依据

 

5.3

计算二叉树层数,叶子数,高度

 

不显式使用堆栈!

 

前序中序后序遍历二叉树

能否产生有序序列

 

反问题:根据两种序列生成二叉树

 

内部路径长度:all根——内部结点I

外:all根——外部节点E

E=I+2n

 

计算内部路径长度/外部

 

掰巧克力:最少次数

 

5.4

 

5.5

一维最近点

 

S中每个点离一个点p距离都最近

 

快包算法

求pmax

最佳效率

 

1000个点,构造100个十边型,不相交,不共点

 

不穿过凸多边形的两个点间最短路径

 证明

posted on 2018-05-27 21:13  秦梦超  阅读(228)  评论(0编辑  收藏  举报

导航