से अधिक सरणी तत्व की अनुक्रमणिका प्राप्त करें, मेरे पास एक विशाल सरणी है, और इससे एक मूल्य है। मैं सरणी में मान का सूचकांक प्राप्त करना चाहता हूं। क्या कोई अन्य तरीका है, इसके बजाय इसे पाने के लिए Array#index
पर कॉल करें? समस्या वास्तव में विशाल सरणी रखने और Array#index
पर भारी मात्रा में कॉल करने की आवश्यकता से आती है।ओ (एन)
की कोशिश करता की एक जोड़ी के बाद मैंने पाया कि कैशिंग मूल्य खुद के बजाय (value, index)
क्षेत्रों के साथ structs भंडारण के द्वारा तत्वों के अंदर अनुक्रमित प्रदर्शन में एक बड़ा कदम (20x बार जीता) देता है।
फिर भी मुझे आश्चर्य है कि कैशिंग के बिना एन तत्व के सूचकांक को खोजने का एक और सुविधाजनक तरीका है (या एक अच्छी कैशिंग तकनीक है जो प्रदर्शन को बढ़ावा देगी)।
सबसे तेज अगर सरणी बहुत लंबी है – Kevin
आपके उपयोग के मामले के आधार पर यदि डुप्लिकेट मान हैं तो यह समस्याग्रस्त हो सकता है। ऊपर वर्णित विधि समकक्ष या # रेन्डेक्स (मूल्य की अंतिम घटना) # इंडेक्स समकक्ष परिणाम प्राप्त करने के लिए, अर्थ है कि हैश ने मूल्य की पहली अनुक्रमणिका को वापस करने के लिए आपको रिवर्सिंग के साथ कुछ करने की आवश्यकता होगी हैश बनाने से पहले सरणी, फिर प्रारंभिक सरणी की कुल लंबाई से लौटाए गए इंडेक्स मूल्य को घटाना - 1. # (array.length - 1) - हैश ['बी'] – ashoda
क्या हैश में रूपांतरण नहीं है समय पर? मुझे लगता है कि अगर इसे एक से अधिक बार इस्तेमाल किया जा रहा है, तो हैश रूपांतरण अधिक प्रदर्शनशील होगा। लेकिन एकल उपयोग के लिए, क्या यह सरणी के माध्यम से फिर से अलग नहीं है? – ahnbizcad