算法引论 Udi Manber
mandycool
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
习题6.23
采用二分法,输入为集合A,B,x;对集合进行二分的基准数分别为a,b;假设a+bF(A,B) = F(A1,B2) + F(A2,B1) + F(A2,B2)问题规模预期可以缩小1/4,复杂度仍为O(nlogn)原创 2012-04-25 16:13:21 · 462 阅读 · 0 评论 -
习题6.19
根据题意,只需要找到一个满足条件的 j ,使用二分查找即可,最坏情况需要 log(n)次比较。注意:需要一个bool量来记录下一次要找大于z的还是小于z的那段原创 2012-04-25 15:44:29 · 1221 阅读 · 0 评论 -
习题6.22
由于输入是实数,因此不方便使用hash映射。a先排序,然后参照 b 算法。采用二分法,之后和6.23算法类似,可以使用6.23中间的函数 f23 ;分割数为a,若a+a b从两头开始,相加小于x,将左边下标右移,否则将右边下标左移。原创 2012-04-25 16:23:51 · 426 阅读 · 0 评论 -
习题6.25
同样考虑二分法,输入是两个集合A,B;分割数为a的话,有F(A,B) = F(A1,B1) + F(A2,B2)复杂度为O(nlogn)这几道题都是类似的,每个都比一遍的话是O(n^2),通过分割,互相需要进行比较的部分被压缩了,因此降低了复杂度。原创 2012-04-25 16:33:24 · 486 阅读 · 0 评论 -
习题6.28
题目:输入数组x,a;根据a中的值作为序列号重新排列x,要求只能使用swap操作,时间复杂度O(nlogn)对a数列进行快排,所有的swap操作也对x数组进行相同操作即可。扩展题:若a=[1,3,5,7,9,...,2,4,6,8,10...];能否在O(n)时间内做到??原创 2012-04-25 21:39:54 · 273 阅读 · 0 评论 -
习题6.44
题目:给两个字符串A,B,长度为n,判断A通过循环移位能否变为B,要求O(n)将A变为AA,然后使用KMP算法。原创 2012-04-25 22:03:21 · 349 阅读 · 0 评论 -
习题6.29
题目:输入是 d 个有序序列,共n个元素,要求在 O(nlogd) 时间复杂度下合并归并排序,两两合并原创 2012-04-25 21:44:49 · 583 阅读 · 0 评论
分享