Chapter 1: Problem 13
Algorithm A performs \(10 n^{2}\) basic operations, and algorithm B performs \(300 \ln n\) basic operations. For what value of \(n\) does algorithm \(\mathrm{B}\) start to show its better performance?
Chapter 1: Problem 13
Algorithm A performs \(10 n^{2}\) basic operations, and algorithm B performs \(300 \ln n\) basic operations. For what value of \(n\) does algorithm \(\mathrm{B}\) start to show its better performance?
All the tools & learning materials you need for study success - in one app.
Get started for freeWrite an algorithm that finds the greatest common divisor of two integers.
Using the definitions of \(O\) and \(\Omega\), show that \\[ 6 n^{2}+20 n \in O\left(n^{3}\right) \quad \text { but } \quad 6 n^{2}+20 n \notin \Omega\left(n^{3}\right) \\]
Algorithm 1.7 (nth Fibonacci Term, Iterative) is clearly linear in \(n,\) but is it a linear-time algorithm? In Section 1.3 .1 we defined the input size as the size of the input. In the case of the \(nth\) Fibonacci term, \(n\) is the input, and the number of bits it takes to encode \(n\) could be used as the input size. Using this measure the size of 64 is \(\lg 64=6,\) and the size of 1024 is \(\lg 1024=\) 10\. Show that Algorithm 1.7 is exponential-time in terms of its input size. Show further that any algorithm for computing the \(nth\) Fibonacci term must be an exponential-time algorithm because the size of the output is exponential in the input size. See Section 9.2 for a related discussion of the input size.
Show directly that \(f(n)=n^{2}+3 n^{3} \in \Theta\left(n^{3}\right) .\) That is, use the definitions of \(O\) and \(\Omega\) to show that \(f(n)\) is in both \(O\left(n^{3}\right)\) and \(\Omega\left(n^{3}\right)\)
Write an algorithm that prints out all the subsets of three elements of a set of \(n\) elements. The elements of this set are stored in a list that is the input to the algorithm.
What do you think about this solution?
We value your feedback to improve our textbook solutions.