Answered step by step
Verified Expert Solution
Question
1 Approved Answer
Consider the following basic problem. You're given an array A consisting of n integers A[1], A[2], A[n]. You'd like to output a two-dimensional n-by-n array
Consider the following basic problem. You're given an array A consisting of n integers A[1], A[2], A[n]. You'd like to output a two-dimensional n-by-n array B in which Ei, (for is) contains the sum of array entries AU through AL-that is, the sum 0+ ,+ 1]+ + AL]. (The value of array entry i, is left unspecified whenever i , so it doesn't matter what is output for these values.) Here's a simple algorithm to solve this problem. For i= 1, 2, , n For j = i + 1 , i + 2, , n Add up array entries A through AU Store the result in Ei, Endfor Endfor (a) For some function fthat you should choose, give a bound of the form O(f (n)) on the running time of this algorithm on an input of size n (i.e., a bound on the number of operations performed by the algorithm) (b) For this same function f, show that the running time of the algorithm on an input of size n is also (f(n)). (This shows an asymptotically tight bound of (f(n) on the running time.) (c) Although the algorithm you analyzed in parts (a) and (b) is the most natural way to solve the problem-after all, it just iterates through the relevant entries of the array B, filling in a value for each-it contains some highly unnecessary sources of inefficiency. Give a different algorithm to solve this problem, with an asymptotically better running time. In other words, you should design an algorithm with running time O(g(n), where limn->o g(n)(n)-0
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started