It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 11 years ago.
How will you compute x/y in O(log(n)) time.
n=x/y, x & y are integers
You can't use the / operator.
One implementation is to add y q times till the result is less than x i.e.
y * q < x
What about 10**(log(x) - log(y))
Big O() notation only applies to how a problem scales with different number of inputs.
The question doesn't make sense unless you mean 'n' is the number of digits in x and y
Related
It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 9 years ago.
I have this question about why the big O for this equation is n cube ?
else if(key == 'x')
C = matrixMult(A, B);
Thanks very much
The resulting matrix has n^2 entries. The computation of each entry can be done by a sum of n products, yielding n^3.
This is only valid for the textbook algorithm, as there exist faster algorithms, e.g. Strassen's algorithm or the fastest known algorithm.
It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 9 years ago.
How can one give Big O, Big Theta or Big Omega for a function like
T(n) = n + 10*log n
Can someone please tell me how I can get the complexity for such a thing?
Drop all lower-order terms and constants and you get:
Θ(T(n)) = Θ(n + 10*log(n)) = Θ(n)
Since this is a tight bound (Θ) we also infer upper and lower bounds as O(n) and Ω(n).
It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 10 years ago.
You have a continuous stream of numbers coming in. You don't have space to store them all. But devise a mechanism by which at any point of time you select any number with equal probability.
Have space for one number, and for the nth number replace it with that number with probability 1/n.
http://en.wikipedia.org/wiki/Reservoir_sampling
It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 11 years ago.
I have n numbers (could be a list or array of n numbers).
Given a number k I want to return a quadruplet of numbers (a,b,c,d) thus that
a+b+c+d=k.
Time Complexity: O(n^2) in average (probability).
You might find this useful: http://en.wikipedia.org/wiki/Dynamic_programming
Think about how to break the problem into subproblems.
It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 12 years ago.
Given two sorted arrays, A and B, find i,j for which |A[i] - B[j]| is minimum.
Since the arrays are sorted, you can pass through them with 2 pointers (one for each array). If |A[i+1] - B[j]| < |A[i] - B[j+1]| then increment i, otherwise increment j. Continue until you've reached the end of one of the arrays. Keep track of the minimal indexes as you go.