यह सब निर्भर करता है कि पुनरावृति करते समय आप किस प्रकार का ऑपरेशन कर रहे हैं, सभी डेटा संरचनाओं में समय और मेमोरी के बीच व्यापार होता है और हमारी आवश्यकताओं के आधार पर हमें सही डीएस चुनना चाहिए। तो कुछ मामले हैं जहां लिंक्डलिस्ट तेजी से हैं फिर सरणी और इसके विपरीत। डेटा संरचनाओं पर तीन बुनियादी ऑपरेशन पर विचार करें।
चूंकि सरणी अनुक्रमणिका आधारित डेटा संरचना है। अरेंजिंग (इंडेक्स) ओ (1) समय लेगा, जबकि लिंक्डलिस्ट इंडेक्स डीएस नहीं है, इसलिए आपको इंडेक्स तक जाने की आवश्यकता होगी, जहां इंडेक्स <= n, एन लिंक्ड लिस्ट का आकार है, जब तत्वों की यादृच्छिक पहुँच होती है, तो सरणी लिंक की गई सूची से तेज़ होती है।
प्र। इसके पीछे की सुंदरता क्या है?
चूंकि Arrays सन्निहित मेमोरी ब्लॉक हैं, उनमें से बड़ी मात्रा को पहली बार एक्सेस करने पर कैश में लोड किया जाएगा, जिससे यह सरणी के शेष तत्वों तक पहुंचने के लिए तुलनात्मक रूप से जल्दी हो जाता है, क्योंकि हम एरे के तत्वों को एक्सेस करते हैं, संदर्भ के इलाके में भी वृद्धि होती है, इस प्रकार यह पकड़ भी लेता है याद आती है, कैश लोकेशन कैश में होने वाले ऑपरेशन को संदर्भित करता है और इस प्रकार मेमोरी की तुलना में बहुत तेजी से निष्पादित होता है, मूल रूप से सरणी में हम कैश में अनुक्रमिक तत्व एक्सेस की संभावना को अधिकतम करते हैं। जबकि लिंक की गई सूचियाँ आवश्यक रूप से स्मृति के सन्निहित ब्लॉक में नहीं हैं, इस बात की कोई गारंटी नहीं है कि सूची में क्रमिक रूप से प्रदर्शित होने वाली वस्तुएं वास्तव में स्मृति में प्रत्येक-दूसरे के पास व्यवस्थित होती हैं, इसका मतलब है कि कम कैश हिट्स जैसे।
लिंक्डलिस्ट में यह आसान और तेज़ है क्योंकि प्रविष्टि के अनुसार लिंक्डलिस्ट (जावा में) में ओ (1) ऑपरेशन है, सरणी की तुलना में इस मामले पर विचार करें, जब सरणी पूरी हो जाती है, तो हमें नई सामग्री की प्रतिलिपि बनाने की आवश्यकता होती है, जो सरणी को सम्मिलित करता है। ArrayList में O (n) का तत्व सबसे खराब स्थिति में है, जबकि ArrayList को अपने इंडेक्स को भी अपडेट करने की आवश्यकता है यदि आप सरणी के अंत को छोड़कर कहीं भी कुछ डालते हैं, तो लिंक की गई सूची के मामले में हमें इसे आकार देने की आवश्यकता नहीं है, आपको बस आवश्यकता है अद्यतन संकेत।
यह सरणी की तरह लिंक्डइन में सम्मिलन और बेहतर की तरह काम करता है।