- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第二章 算法效率分析基础
2.5 计算 斐波那契数列 的 O(log n) 算法:
利用矩阵, 当 n = 1 时, [F(n-1), F(n); F(n), F(n+1)] = [0,1; 1,1]^n
其中的乘方运算使用 霍纳法则
第三章 蛮力法
凸包问题 :链接任意两点,检查剩余的点是否都在连线的同侧。效率 O(n^3)
分配问题 :n 个任务分配给 n 个人,其中将第 j 个任务分配给第 i 个人的成本为 C[i,j] ,找出
成本最小的分配方案。蛮力法:穷举 n!种可能的方案。高效方法: 匈牙利方法 。
第四章 分治法
主定理 :对于 T(n) = a T(n/b) + f(n), f(n) 为 Θ(n^d)
如果 a b^d, T(n) = Θ(n^d)
如果 a = b^d, T(n) = Θ(n^d * log n)
如果 a b^d, T(n) = Θ(n ^ (log a/log b))
大整数乘法 :a=a1a0, b=b1b0, 其中 a 和 b 都是 n 位整数,低 n/2 位为 a0,b0, 高位为 a1,b1
需要三次 n/2 位的乘法即可完成 c = a*b = c2*10^2n + c1*10^n + c0
其中 c2=a1*b1, c0=a0*b0, c1=(a1+a0)*(b1+b0) - (c2+c0)
T(n) = n^(log3/log2)
最近点对问题 :找到平面上 n 个点中的最近距离。 先画一条竖线, 将所有的点分成左右两半,
找到两部分的最近距离 d1,d2, 然后考察竖线附近的点。
凸包问题的快包算法 (类似于快速排序):首先过最左边的点 P1 和最右边的点 Pn,将平面
分成上下两部分。 然后考察上半个平面: 找到距离直线 P1Pn 距离最远的点 Pmax, 那么 Pmax
一定是凸包的顶点; 三角形 P1PmaxPn 内部的点一定不是凸包的顶点。然后只需分别考虑
两侧的顶点即可。
平均效率 O(n * log n) 。由于三角形内部的点无须考虑,甚至可以达到线性效率。
最差情况 O(n^2) :剩下的点全都在同一侧。
三角形面积的计算:三角形 (x1,y1),(x2,y2),(x3,y3) 的面积等于下面这个行列式的值的 1/2
[x1,y1,1; x2,y2,1; x3,y3,1] = x1y2 + x2y3 + x3y1 - x3y2 - x2y1 - x1y3
第五章 减治法
插入排序 :最差情况需要做 (n-1)*n/2 次比较,但是平均只需 n^2/2 次比较,因此胜过选择排
序和冒泡排序。
插入排序有一种扩展算法,叫做 Shell 排序 。
拓扑排序 :算法 1,通过 深度优先搜索 ,将出栈顺序反过来即得到一个解。算法 2,先找到
一个只有出度没有入度的点,将这个点以及相关的边删除,重复此过程。
生成排列 :依次生成从 1 到 n 的所有排列。假设已经得到了 n-1 的所有排列,那么依次取出
n-1 的每一个排列,将 n 插入每一个位置。按这样的顺序插入更好:对于取出的第一个 (n-1)
排列,从右到左插入;第二个排列从左到右插入;第三个再从右到左 ...
例子:依次生成 1 到 3 的所有排列
开始: 1
从右到左将 2 插入 1: 12, 21
从右到左将 3 插入 12: 123, 132, 312
从左到右将 3 插入 21:321 ,231 ,213
依这种次序生成的排列满足最小变化要求: 得到的两个相邻的排列的差别仅在于交换两个相
邻的位置。
生成排列 :生成 n 的所有排列。可不可以不通过(
文档评论(0)