I was going through some interview question and stumbled upon this question. p(x) = a0 + a1x + a2x^2 + … + anx^n. What algorithm could you use to to compute the value of p(x) in O(N^2) ? I’m totally clueless about how to approach this problem.
I was going through some interview question and stumbled upon this question. p(x) =
Share
You can do it in
O(N)with direct evaluation or with Horner’s method. A useful chart for complexity of various operations and the methods involved can be found here:Computational complexity of mathematical operations
Horner’s method is a serial procedure that optimizes “sub-expressions of form (A+ Bx) which be evaluated using a native multiply–accumulate instruction on some architectures”. A more parallel version is Estrin’s scheme.
Since you can compute the
p(x)inO(N)time, apply this methodNtimes to achieveO(N^2)(if that is really what you are after…).