जावास्क्रिप्ट में एरर्स को जोड़ने और हटाने के द्वारा संशोधित करना बहुत आसान है। यह कुछ हद तक इस तथ्य का सामना करता है कि अधिकांश भाषा सरणियाँ निश्चित आकार की हैं, और आकार बदलने के लिए जटिल संचालन की आवश्यकता होती है। ऐसा लगता है कि जावास्क्रिप्ट खराब प्रदर्शन वाले सरणी कोड को लिखना आसान बनाता है। यह प्रश्न की ओर जाता है:
क्या प्रदर्शन (बड़े ओ समय जटिलता के संदर्भ में) मैं सरणी प्रदर्शन के संबंध में जावास्क्रिप्ट कार्यान्वयन से उम्मीद कर सकता हूं?
मुझे लगता है कि सभी उचित जावास्क्रिप्ट कार्यान्वयन में निम्नलिखित बड़े ओ में से अधिकांश हैं।
- अभिगमन - O (1)
- लागू - O (n)
- Prepending - O (n)
- सम्मिलन - O (n)
- विलोपन - O (n)
- गमागमन - O (1)
जावास्क्रिप्ट का उपयोग करके आप एक सरणी को एक निश्चित आकार में भर सकते हैं new Array(length)
सिंटैक्स । (बोनस प्रश्न: इस तरह से एक सरणी बना रहा है ओ (1) या ओ (एन)) यह एक पारंपरिक सरणी की तरह अधिक है, और यदि पूर्व-आकार के सरणी के रूप में उपयोग किया जाता है, तो ओ (1) को जोड़ने की अनुमति दे सकता है। यदि परिपत्र बफ़र तर्क जोड़ा जाता है, तो आप ओ (1) पूर्ववर्ती को प्राप्त कर सकते हैं। यदि एक गतिशील विस्तार सरणी का उपयोग किया जाता है, तो ओ (लॉग एन) उन दोनों के लिए औसत मामला होगा।
क्या मैं अपनी धारणाओं की तुलना में कुछ चीजों के लिए बेहतर प्रदर्शन की उम्मीद कर सकता हूं? मुझे उम्मीद नहीं है कि किसी भी विशिष्टताओं में कुछ भी उल्लिखित है, लेकिन व्यवहार में, यह हो सकता है कि सभी प्रमुख कार्यान्वयन पर्दे के पीछे अनुकूलित सरणियों का उपयोग करें। क्या काम पर गतिशील रूप से एरे या कुछ अन्य प्रदर्शन-बूस्टिंग एल्गोरिदम का विस्तार हो रहा है?
पुनश्च
कारण यह है कि मैं सोच रहा हूँ कि मैं कुछ छँटाई एल्गोरिदम पर शोध कर रहा हूँ, जिनमें से अधिकांश अनुमान लगाने और हटाने के लिए लग रहे हैं कि ओ (1) संचालन जब उनके समग्र बड़े ओ का वर्णन कर रहे हैं।
length
संपत्ति सेट करना और पूर्व-आवंटन स्थान दो पूरी तरह से अलग चीजें हैं।
array[5]
एक new Array(10)
(ओ) पर सेटिंग की उम्मीद करता हूं तो क्या मैं बहुत ज्यादा उम्मीद कर रहा हूं ?
.length
लेकिन इसके बारे में है।) ऐरे वास्तव में सादे वस्तु उदाहरणों से बहुत अलग नहीं हैं।