- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
这是 CLRS 书中的一道题。Introduction to Algorithms Study Group网站对此给出了如下回答:
( http://clrs.skanev.com/04/problems/03.html )
这个答案对吗?我不明白最后两行。
最佳答案
不,不是。还有一个错字,应该是 n 而不是无穷大。对于严格的数学证明,您应该在另一个 stackExchange 站点(数学站点)上询问。但为了您的直觉,我可以展示以下内容。
假设 n = 2^2^k
那么 sum of 1/lg(i)
等于
1/lg2 + 1/lg3 + 1/lg4 + 1/lg5 + 1/lg6 + 1/lg7 + 1/lg8 + 1/lg9 +
1/lg10 + 1/lg11 + 1/lg12 + 1/lg13 + 1/lg14 + 1/lg15 + ... + 1/lg n-1
这大约是
1/lg2 + 1/lg2 + 1/lg4 + 1/lg4 + 1/lg4 + 1/lg4 + 1/lg8 + 1/lg8 +
1/lg8 + 1/lg8 + 1/lg8 + 1/lg8 + 1/lg8 + 1/lg8 + ... + 1/lg n-1
等于
1/1 + 1/1 + 1/2 + 1/2 + 1/2 + 1/2 + 1/3 + 1/3 +
1/3 + 1/3 + 1/3 + 1/3 + 1/3 + 1/3 + ... + 1/ (2^k - 1) (as lg n = 2^k)
合并后我们有
sum(1/i * 2^i) from 1 to 2^k-1
其中最后一个成员是 n/2/2^k-1
,这是关于 2^(2^k-k-1)
的,这远不是 theta lg lg n = k
。当然,总和甚至更大。
关于algorithm - 递归的复杂度 T(n)=T(n−2)+1/lgn?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32742573/
一个可以用n^2 次的非递归算法解决的问题。同样的问题可以在 n lg(n) 操作中使用递归算法来解决,将输入分成两个相等的部分和 lg(n) 操作来组合两个解决方案在一起。您认为哪种算法更有效? 编
Consider the following recurrence T(n) = 3T(n/5) + lgn * lgn What is the value of T(n)? (A) Theta(n
大家好,我是蓝胖子,我一直相信编程是一门实践性的技术,其中算法也不例外,初学者可能往往对它可望而不可及,觉得很难,学了又忘,忘其实是由于没有真正搞懂算法的应用场景,所以我准备出一个系列,囊括我
现在我正在阅读算法介绍,快速排序章节。说尾递归可以用来优化。 QUICKSORT'(A, p, r) while p < r do ▸ Partition and sort left
所以无论我在哪里看到加权联合查找算法,他们都使用这种方法: 维护一个指向特定节点父节点的数组 维护一个数组,表示节点所在树的大小 对于 union (p,q) 将较小的树与较大的树合并 这里的时间复杂
⭐️ 本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 和 BaguTree Pro 知识星球提问。 学习数据结构与算法的关键在于掌握问题背后
让 int arr[]={0,1,2,-1,4,8,9,-1,17,32,56,128}; 数组排序不包括指定数-1,我想在数组中查找一个非指定数的元素,请问有满足以下条件的算法吗? 时间复杂度为O(
我很难解决这个问题。 A[1..n] is an array of real numbers which is partially sorted: There are some p,q (1 = .
这几天我一直在努力解决这个问题。我有一个关于学校的问题,内容如下: Let A be a min-heap. The operation HEAP-MODIFY(A, i, k) changes th
我需要找到满足这些要求的数据结构: 可以从 O(n) 中的 n 个项目的列表中构建它 插入一个项目需要 O(lgn) 提取中位数需要 O(lgn) 提取第二小的项目需要 O(lgn) 对于前三个要求,
我有一个我在下面写的方法。 public static long nlgn(double[] nums) { long start = System.nanoTime();
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 9 年前。 Improve this
假设您有很多(键,值)对象要跟踪,有很多插入和删除。 您需要满足 3 个要求: 获取任意时刻恒定时间内的最大 key 以对数时间查找任何键的值。 插入和删除需要对数时间。 是否有一种数据结构可以做到这
矩阵 A 按行和列排序,其中 A[i][j] = 0 ) { if ( mat[i][j] == x ) { printf("\n Found a
我想找到一种多线程算法,将 $n x n$ 矩阵乘以 n 向量,实现 $\Theta(n^2/lgn)$ 并行性,同时保持 $\Theta(n^2)$ 工作。 我知道一个非法的解决方案,但是关于如何使
这是 CLRS 书中的一道题。Introduction to Algorithms Study Group网站对此给出了如下回答: ( http://clrs.skanev.com/04/proble
我正在阅读算法导论并尝试完成书中的练习。 练习 4.1-3 4.1-3 Implement both the brute-force and recursive algorithms for the
我是一名优秀的程序员,十分优秀!