मुझे पता चला है कि List.Add()
की एसिम्प्टोटिक जटिलता के बारे में बहुत सारे विवाद हैं। इसका स्रोत मुझे संदेह है कि सबसे खराब स्थिति परिदृश्य that causes underlying array to resize है और तर्कसंगत रूप से O(n)
ऑपरेशन होगा। हालांकि, array grows twice in size प्रत्येक बार सूची अंतरिक्ष से बाहर हो जाती है। इससे n
तत्वों के लिए आवश्यक आकारों की संख्या log(n)
के समान होती है।सूची की एसिम्प्टोटिक जटिलता क्या है। जोड़ें?
क्या इसका मतलब यह नहीं है कि Add
औसत केस में ऑपरेशन O(n/log(n))
होगा?
List.Add()
के लिए वास्तविक बेंचमार्क नीचे है। हालांकि, ऐसे ऑपरेशन के लिए बेंचमार्क वास्तव में अभिव्यक्तिपूर्ण नहीं हैं - हम सीधे (किसी भी विचलन पैमाने पर) रेखा से किसी भी विचलन से पहले स्मृति से बाहर हो रहे हैं।
जब सरणी वास्तव में मौजूदा एन/2 तत्वों को बढ़ाया जाता है। यही कारण है कि आपको लगता है कि यह लॉग एन है। लेकिन नई अभी तक असामान्य क्षमता वृद्धि तेजी से बढ़ रही है। वह प्रभाव काउंटर। पहला तत्व लॉग एन बार ले जाया गया है। अंतिम एन/2 तत्व 0 या 1 बार स्थानांतरित हो जाते हैं। – usr