प्राथमिकता पंक्तियों में प्रत्येक प्रविष्टि के लिए प्राथमिकता मान और डेटा होता है।जावास्क्रिप्ट में प्राथमिकता कतार लागू करने के लिए कुशल तरीका?
इस प्रकार, कतार में एक नया तत्व जोड़ते समय, यह सतह पर बुलबुले हो जाता है यदि संग्रह में पहले से मौजूद तत्वों की तुलना में यह उच्च प्राथमिकता मान है।
जब कोई पॉप कॉल करता है, तो हमें उच्च प्राथमिकता वाले तत्व के लिए डेटा मिलता है।
जावास्क्रिप्ट में ऐसी प्राथमिकता कतार का कुशल कार्यान्वयन क्या है?
क्या प्राथमिकता क्यूयू नामक एक नई वस्तु रखने के लिए यह समझ में आता है, दो विधियां (पुश और पॉप) बनाएं जो दो पैरा (डेटा, प्राथमिकता) लेते हैं? मुझे कोडर के रूप में बहुत कुछ समझ में आता है, लेकिन मुझे अनिश्चितता है कि किस डेटा संरचना का उपयोग अंडरबली में किया जाता है जो तत्वों के क्रम में हेरफेर की अनुमति देगा। या क्या हम इसे सभी को एक सरणी में स्टोर कर सकते हैं और तत्व को अधिकतम प्राथमिकता के साथ हर बार सरणी के माध्यम से चल सकते हैं?
ऐसा करने का एक अच्छा तरीका क्या है?
कूल, बहुत बहुत शुक्रिया:
https://google.github.io/closure-library/api/goog.structs.PriorityQueue.html
स्रोत कोड को क्लिक करके, आप यह वास्तव में
goog.structs.Heap
को जोड़ने है आप का अनुसरण कर सकते हैं जो पता चल जाएगा !मैं सोच रहा हूं: क्या यह कार्यान्वयन में 2 अलग-अलग सरणी का उपयोग करने के लिए और अधिक समझ में आता है (डेटा के लिए एक और प्राथमिकता के लिए एक, और केवल डेटा [i] और प्राथमिकता [i] वही "जोड़ी" हो) या एक का उपयोग करने के लिए 2 डी [] [] सरणी? चूंकि, पहला विकल्प केवल 2 एन स्पेस का उपयोग करता है लेकिन दूसरा एन^2 – sovaतक उपयोग कर सकता है, मैं केवल एक सरणी का उपयोग करता हूं। और दोनों विकल्प '2n' स्पेस का उपयोग करते हैं क्योंकि बहुआयामी सरणी में प्रत्येक पंक्ति में केवल दो तत्व होते हैं (निश्चित लंबाई)। – gyre
आह मैं देखता हूँ! फिर से धन्यवाद दोस्त, बहुत उपयोगी है। – sova