Edg Bamyasi wrote:
What is the running time of conactination on character strings.

i.e.


joe="123"
joe+="99999999999999999"


is it Amortized Constant time? I don't think it would be O((number of
chars)^2) but i really don't know.

Strings are immutable, so joe+="99999999999999999" is executed as joe = joe + "99999999999999999"

This means that there is
- one allocation
- two memcpy
- one deallocation (old value of joe)

My guess is that the allocations play a rather large part in the actual timing.

Creating a large string by multiple concatenations is slow, instead you should:
- use module cStringIO
- or add all the strings to a list and do "".join (listvariable)


How are you supposed to know? It's mostly Python folklore, some of which has been written down in the Python Cookbook (http://aspn.activestate.com/ASPN/Python/Cookbook/)

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

Reply via email to