- 18
- 0
- 约1.32万字
- 约 71页
- 2019-12-03 发布于广西
- 举报
对于一个具有n个元素的集合,其子集数量是2n,所以,不论生成子集的算法效率有多高,蛮力法都会导致一个Ω(2n)的算法。 由于任务分配问题需要考虑的排列数量是n!,所以,除了该问题的一些规模非常小的实例,蛮力法几乎是不实用的。 该算法的效率如何呢?所有不同的点共组成了n(n-1)/2边,对每条边都要对其他n-2个顶点求出在直线方程ax + by = c中的符号,所以,其时间复杂性是O(n3)。 算法3.11的基本操作是计算两个点的欧几里德距离。注意到在求欧几里德距离时,避免了求平方根操作,其原因是:如果被开方的数越小,则它的平方根也越小。所以,算法3.11的基本操作就是求平方,其执行次数为: 3.6.2 凸包问题 定义3.1 对于平面上的一个点的有限集合,如果以集合中任意两点P和Q为端点的线段上的点都属于该集合,则称该集合是凸集合。 显然,任意凸多边形都是凸集合。 (a) 凸集合 (b) 非凸集合 定义3.2 一个点集S的凸包是包含S的最小凸集合,其中,最小是指S的凸包一定是所有包含S的凸集合的子集。 对于平面上n个点的集合S,它的凸包就是包含所有这些点(或者在内部,或者在边界上)的最小凸多边形
原创力文档

文档评论(0)