On Fri, 27 Jan 2006 16:34:53 -0800, Murali wrote:

> I did not actually run the code, so there may be syntax errors and so
> forth. But how is L[x] = Y an O(1) operation. Given x finding L[x]
> would require to traverse x nodes in the list. So finding L[x] requires
> O(x) time. Once you find L[x] setting it to Y is O(1) I agree.


You are assuming that Python lists are linked lists. They are not. They
are arrays. Accessing the entry at position x doesn't require traversing
the list at all.


> In Solution B: By L.index(X), I mean search for X and then replace it
> with Y. Here every time the search starts from the beginning of the
> list. Hence the inefficiency.

Yes, but the inefficient search code is done in C, which is so fast that
it really doesn't matter unless your list is HUGE. 



-- 
Steven.

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to