Analyzing the MaxsubFaster Algorithm
The correctness of the MaxsubFaster algorithm follows along the same arguments
as for the MaxsubSlow algorithm, but it is much faster. In particular, the outer
loop, for index j, will iterate n times, its inner loop, for index k, will iterate at
most n times, and the steps inside that loop will only take O(1) time in each iteration.
Thus, the total running time of the MaxsubFaster algorithm is O(n2), which
improves the running time of the MaxsubSlow algorithm by a linear factor.
True story: A former student of one of the authors gave this very algorithm during
a job interview for a major software company, when asked about the maximum
subarray problem, correctly observing that this algorithm beats the running time of
the naive O(n3)-time algorithm by a linear factor. Sadly, this student did not get a
job offer, however, and one reason could have been because there is an even better
solution to the maximum subarray problem, which the student didn’t give.