Aug. 12, 2014
12:50 a.m.
On Mon, Aug 11, 2014 at 8:19 PM, Nick Coghlan <ncoghlan@gmail.com> wrote:
Teaching users the difference between linear time operations and quadratic ones isn't about purity, it's about passing along a fundamental principle of algorithm scalability.
I would understand if this was done in reduce(operator.add, ..) which indeed spells out the choice of an algorithm, but why sum() should be O(N) for numbers and O(N**2) for containers? Would a python implementation that, for example, optimizes away 0's in sum(list_of_numbers) be non-compliant with some fundamental principle?