दिलचस्प पोस्ट
IdentityServer4 UserService रजिस्टर करें और asp.net कोर में डेटाबेस से उपयोगकर्ता प्राप्त करें स्विफ्ट नेविगेशन बार छवि शीर्षक jquery के साथ सीएसएस फ़ाइल जोड़ने URL से डाउनलोड / स्ट्रीम फ़ाइल – asp.net * ngFor का उपयोग करके वस्तु की कुंजी और मूल्य का उपयोग पाप्लोट स्कैटर साजिश मार्कर का आकार सी # winforms पर पाठ बॉक्स के लिए इनपुट की पुष्टि उद्देश्य- C #import लूप त्रुटि: java.util.zip.ZipException: डुप्लिकेट प्रविष्टि पायथन मल्टीप्रोसेसिंग और एक साझा काउंटर मैं स्टैनफोर्ड पार्सर का प्रयोग करके वाक्यों में एक पाठ को कैसे विभाजित कर सकता हूं? 1 सेकंड टाइमआउट के साथ आईपी से पायथन लुकअप होस्टनाम रेल 4 टर्बो-लिंक जेपीसी स्क्रिप्ट को काम से रोकता है जावास्क्रिप्ट का उपयोग कर स्टॉपवॉच कैसे तैयार करें? मैं एक स्ट्रिंग कैसे यूआरएल सांकेतिक शब्दों में बदलना है

जावा अर्रे लिस्ट के लिए समय की जटिलता

ArrayList एक सरणी या जावा में एक सूची है? प्राप्त प्रक्रिया के लिए समय की जटिलता क्या है, क्या यह O(n) या O(1) ?

वेब के समाधान से एकत्रित समाधान "जावा अर्रे लिस्ट के लिए समय की जटिलता"

जावा में एक ArrayList एक List जो किसी array से समर्थित है।

get(index) विधि एक निरंतर समय है, O(1) , ऑपरेशन।

ArrayList.get(index) लिए जावा लाइब्रेरी से सीधे कोड:

 public E get(int index) { RangeCheck(index); return (E) elementData[index]; } 

असल में, यह सिर्फ बैकिंग सरणी से सीधे एक मूल्य देता है। ( RangeCheck(index) ) भी स्थिर समय है)

यह कार्यान्वयन एक सरणी के साथ किया जाता है और प्राप्त कार्य ओ (1) है।

जवाडॉक कहता है:

आकार, रिक्त, प्राप्त, सेट, इटरेटर, और सूचीइंटरेटर ऑपरेशन निरंतर समय में चलते हैं। जोड़ कार्रवाई, amortized निरंतर समय में चलता है, जो है, एन तत्वों को जोड़ने के लिए ओ (एन) समय की आवश्यकता होती है रैखिक समय (मोटे तौर पर बोलने वाले) में चलने वाले सभी अन्य कार्यों LinkedList कार्यान्वयन के लिए उस की तुलना में लगातार कारक कम है

जैसा कि सभी ने पहले से ही बताया है, पढ़ने के कार्य निरंतर समय हैं – हे (1) लेकिन लिखने के ऑपरेशन में बैकिंग सरणी, पुन: आवंटन और एक कॉपी में अंतरिक्ष से बाहर निकलने की क्षमता है – ताकि ओ (एन) समय में चल सके , जैसा डॉक्टर कहते हैं:

आकार, रिक्त, प्राप्त, सेट, इटरेटर, और सूचीइंटरेटर ऑपरेशन निरंतर समय में चलते हैं। जोड़ कार्रवाई, amortized निरंतर समय में चलता है, जो है, एन तत्वों को जोड़ने के लिए ओ (एन) समय की आवश्यकता होती है रैखिक समय (मोटे तौर पर बोलने वाले) में चलने वाले सभी अन्य कार्यों LinkedList कार्यान्वयन के लिए उस की तुलना में लगातार कारक कम है

अभ्यास में सब कुछ ओ (1) के बाद कुछ जोड़ता है, क्योंकि बैकिंग सरणी हर बार दोगुनी हो जाती है जब इसकी क्षमता समाप्त हो जाती है। इसलिए यदि सरणी 16 पर शुरू होती है, तो इसे पूर्ण हो जाता है, इसे 32, फिर 64, 128, आदि के लिए पुनः आवंटित किया जाता है। इसलिए यह ठीक से तराजू है, लेकिन जीसी एक बड़ी रीएलएलक के दौरान हिट हो सकती है।

पांडित्य होने के लिए, यह एक List है जो एक सरणी द्वारा समर्थित है। और हाँ, get() लिए समय की जटिलता get() ओ (1) है