लिंक्ड सूची में संशोधन दो आपरेशन शामिल दूसरा ऑपरेशन O(1)
ऑपरेशन है, इसलिए यह पहले संचालन की लागत का मामला है।
जब पिछले नोड के लिए जोड़कर, लिंक्ड सूची की भोली कार्यान्वयन O(n)
यात्रा समय में परिणाम होगा। हालांकि, अच्छी तरह से जुड़ी सूची पुस्तकालय सबसे आम उपयोगों के लिए जिम्मेदार होंगे, और अंतिम नोड तक पहुंचने वाला विशेष मामला होगा। इस अनुकूलन के परिणामस्वरूप O(1)
अंतिम तत्व की पुनर्प्राप्ति होगी, जिसके परिणामस्वरूप कुल O(1)
सम्मिलन समय समाप्त हो जाएगा।
बीच का सवाल है, अपने विश्लेषण में नोड लगाने वह भी O(n)
ले जाएगा सही है। हालांकि, कुछ पुस्तकालयों के लिए एक विधि है कि जहां नए नोड सूचकांक (जैसे C++
list
) के बजाय डाला जाना चाहिए करने के लिए एक सूचक ले जाएगा बेनकाब। यह रैखिक लागत को समाप्त करता है, जिसके परिणामस्वरूप सभी O(1)
से अधिक होता है।
जबकि मध्य में सम्मिलन आमतौर पर O(n)
ऑपरेशन के रूप में सोचा जाता है, इसे कुछ मामलों में O(1)
पर अनुकूलित किया जा सकता है।यह सरणी सूची के विपरीत है, जहां सम्मिलन ऑपरेशन स्वयं (दूसरा ऑपरेशन) O(n)
है, क्योंकि उच्च स्थानों के सभी तत्वों को स्थानांतरित करने की आवश्यकता है। इस ऑपरेशन को अनुकूलित नहीं किया जा सकता है।
डालने के लिए एक लिंक्ड सूची के एक निष्पक्ष कार्यान्वयन के परिणामस्वरूप O(n)
सम्मिलन समय होगा। हालांकि, अच्छी तरह से जुड़ी सूची लाइब्रेरी लेखकों को आम मामलों के लिए अनुकूलित किया जाएगा, इसलिए वे अंतिम तत्वों (या एक गोलाकार लिंक सूची कार्यान्वयन) के संदर्भ में रहेंगे, जिसके परिणामस्वरूप O(1)
सम्मिलन समय होगा।
बीच में प्रविष्टि के लिए के रूप में। C++
की तरह कुछ पुस्तकालयों में सम्मिलन के लिए एक सुझाया गया स्थान है। वे सूची नोड में एक सूचक लेते हैं, जहां नया एक जोड़ा जा सकता है। इस तरह के सम्मिलन का खर्च O(1)
होगा। मुझे नहीं लगता कि आप इंडेक्स नंबर से O(1)
प्राप्त कर सकते हैं।
यह एक सरणी सूची के लिए लगाया गया है, जहां मध्य बलों को सम्मिलन से अधिक सभी तत्वों के पुनर्वितरण में प्रवेश किया जाता है, इसलिए इसे O(n)
ऑपरेशन होना चाहिए।
यदि सूची के मध्य में सम्मिलन ओ (1) था तो हमें अब सरणी की आवश्यकता नहीं होगी :)। – Li0liQ
Li0liQ: लिंक की गई सूचियों के फायदों में से एक यह है कि आप मध्य में वस्तुओं को निरंतर समय में सम्मिलित कर सकते हैं, जहां सरणी में आपको निम्नलिखित सभी वस्तुओं को स्थानांतरित करने की आवश्यकता होती है। – Amnon
@ ली 0liQ: निरंतर समय अनुक्रमण के बारे में क्या? – sykora