हजारों संख्याओं की सूची बनाने के लिए विधियों के नीचे विचार करें।सूचियों के लिए संलग्न और concatenate की जटिलता में अंतर
def test1():
l = []
for i in range(1000):
l = l + [i]
return l
def test2():
l = []
for i in range(1000):
l.append(i)
print timeit.repeat(stmt=test1, number=100,repeat=2)
print timeit.repeat(stmt=test2, number=100,repeat=2)
आउटपुट:
[0.30474191033602543, 0.3783786557587963]
[0.015134341605235302, 0.023081246200096328]
संलग्न विधि चारों ओर 20 बार संयोजन की तुलना में बेहतर क्यों है। AFAIK परिशिष्ट में ओ (1) जटिलता है जबकि सहानुभूति में ओ (के) जटिलता है। जबकि के यहां है 1.
क्या कुछ स्पष्ट चीज़ मैंने अनदेखी की है?
अभी भी यह 'ले रहा है [.047872320772834216, .04017255103519537]' संलग्न करने से लगभग 2 गुना। – garg10may
@ garg10may: नहीं, यह नहीं है। मेरे समय देखें। –
@ garg10may: और ओ (1) प्रदर्शन का * वर्ग * है, सटीक माप नहीं; विभिन्न ओ (1) एल्गोरिदम के बीच निरंतर समय अभी भी भिन्न हो सकता है। –