第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个十边型,不相交,不共点

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

 证明

原文地址:https://www.cnblogs.com/qmcj/p/9097404.html