जावा में मैक्स हीप का उपयोग कैसे करें?

Java Mem Maiksa Hipa Ka Upayoga Kaise Karem



प्रोग्रामर 'का उपयोग करके आसानी से अधिकतम तत्व प्राप्त कर सकता है' मैक्स ढेर “बाइनरी ट्री. जैसे कि इस पेड़ में, अधिकतम तत्व हमेशा पेड़ के शीर्ष नोड पर रहता है जिसे 'के रूप में जाना जाता है' जड़ 'नोड. इसके अलावा, यह क्रमबद्ध क्रम को बनाए रखते हुए तत्वों का कुशल सम्मिलन और विलोपन प्रदान करता है। इसके अलावा, एक 'मैक्स हीप' अपनी प्राथमिकता या अन्य मानदंडों के आधार पर निर्धारित कार्य आसानी से कर सकता है।

यह आलेख निम्नलिखित सामग्री की व्याख्या करता है:







जावा में मैक्स हीप का उपयोग कैसे करें?

ए ' मैक्स ढेर प्राथमिकता कतार को लागू करने के लिए अंतर्निहित डेटा संरचना के रूप में उपयोग किया जाता है। प्राथमिकता कतार में, डेटा को उनके निर्दिष्ट प्राथमिकता मान के आधार पर संसाधित किया जाता है। इसका उपयोग डेटा तत्वों को अवरोही क्रम में कुशलतापूर्वक क्रमबद्ध करने के लिए भी किया जा सकता है।



'मैक्स हीप' को दो तरीकों का उपयोग करके उत्पन्न किया जा सकता है जिन्हें नीचे दिए गए कोडेक उदाहरण के साथ वर्णित किया गया है:



विधि 1: 'maxHeapify()' विधि का उपयोग करें

maxHeapify() 'विधि एक' उत्पन्न करती है मैक्स ढेर डेटा संरचनाओं को परिवर्तित करके तत्वों के मौजूदा संग्रह से। इसके अलावा, यह विधि अतिरिक्त मेमोरी की आवश्यकता को कम करने के लिए मूल सरणी को संशोधित करने में मदद करती है।





उदाहरण के लिए, 'उत्पन्न करने के लिए नीचे दिए गए कोड पर जाएँ' मैक्स ढेर 'MaxHeapify()' विधि का उपयोग करना:

आयात java.util.ArrayList;
आयात java.util.संग्रह;
आयात java.util.List;

सार्वजनिक वर्ग MaxHeapifyExam {
सार्वजनिक स्थैतिक शून्य मुख्य ( डोरी [ ] तर्क ) // मुख्य का निर्माण ( ) तरीका
{
सूची < पूर्णांक > testEle = नई ArrayList <> ( ) ;
testEle.जोड़ें ( 5 ) ;
testEle.जोड़ें ( 3 ) ;
testEle.जोड़ें ( 8 ) ;
testEle.जोड़ें ( 2 ) ;
testEle.जोड़ें ( 1 ) ;
testEle.जोड़ें ( 7 ) ;
System.out.println ( 'मूल सूची:' + परीक्षण ) ;
maxHeapify ( परीक्षण ) ;
System.out.println ( 'मैक्स हीप उत्पन्न:' + परीक्षण ) ;
}

निजी स्थैतिक शून्य maxHeapify ( सूची < पूर्णांक > परीक्षण ) {
int k = testEle.size ( ) ;
के लिए ( इंट आई = के / 2 - 1 ; मैं > = 0 ; मैं-- ) {
ढेर लगाना ( परीक्षणएले, के, आई ) ;
}
}

निजी स्थैतिक शून्य ढेर लगाना ( सूची < पूर्णांक > परीक्षणEle, int k, int i ) {
पूर्णांक अधिक = मैं;
int लेफ्टसाइड = 2 * मैं + 1 ;
पूर्णांक दाएँ पक्ष = 2 * मैं + 2 ;
अगर ( बाईं तरफ < && testEle.get ( बाईं तरफ ) > testEle.get ( ग्रेटर ) ) {
ग्रेटर = लेफ्टसाइड;
}
अगर ( दाईं ओर < && testEle.get ( दाईं ओर ) > testEle.get ( ग्रेटर ) ) {
अधिक = दाईं ओर;
}
अगर ( ग्रेटर ! = मैं ) {
संग्रह.स्वैप ( टेस्टएले, आई, ग्रेटर ) ;
ढेर लगाना ( टेस्टइले, के, ग्रेटर ) ;
}
}
}



उपरोक्त कोड की व्याख्या:

  • सबसे पहले, सूची ' परीक्षण 'में डमी डेटा तत्वों के साथ आरंभ किया गया है' मुख्य() 'विधि और कंसोल पर मुद्रित।
  • इसके बाद, 'testEle' सूची को 'maxHeapify()' फ़ंक्शन में पास कर दिया जाता है, और फिर लौटाई गई सूची कंसोल पर प्रदर्शित हो जाती है।
  • फिर ' maxHeapify() 'विधि प्रारंभ की गई है और प्रदान की गई सूची का आकार' का उपयोग करके पुनर्प्राप्त किया गया है आकार() ' तरीका।
  • इसके बाद, 'का उपयोग करें के लिए ढेर संरचना सेट करने और प्रत्येक नोड की स्थिति की गणना करने के लिए लूप।
  • अब, 'का उपयोग करें ढेर लगाना() ' विधि और क्रमशः 'अधिक', 'लेफ्टसाइड' और 'राइटसाइड' वेरिएबल्स को मान निर्दिष्ट करके 'टॉप', 'लेफ्ट' और 'राइट' नोड्स के लिए स्थिति निर्धारित करें।
  • उसके बाद, एकाधिक का उपयोग करें ' अगर 'सशर्त बयान यह जांचने के लिए कि क्या' बाईं तरफ 'नोड' से बड़ा है दाईं ओर 'नोड और इसके विपरीत। अंत में, बड़ा मूल्य 'में संग्रहीत हो जाता है ग्रेटर 'नोड.
  • अंत में, नया ' ग्रेटर 'नोड मान की जाँच' में पहले से संग्रहीत मान से की जाती है ग्रेटर 'नोड चर. और यह ' बदलना() 'फ़ंक्शन' में सबसे बड़ा मान सेट करने के लिए तदनुसार काम करता है ग्रेटर ' चर।

निष्पादन चरण की समाप्ति के बाद:

स्नैपशॉट दिखाता है कि अधिकतम ढेर 'का उपयोग करके उत्पन्न होता है maxHeapify() जावा में विधि।

विधि 2: “Collections.reversOrder()” विधि का उपयोग करें

संग्रह.रिवर्सऑर्डर() 'विधि' उत्पन्न करने के लिए एक सरल और संक्षिप्त विधि प्रदान करती है मैक्स ढेर संग्रह को उल्टे क्रम में क्रमबद्ध करके। यह कोड को पुन: उपयोग करने की अनुमति देता है और कस्टम को लागू करने की आवश्यकता से बचाता है। ढेर लगाना 'तर्क, जैसा कि नीचे दिए गए कोड स्निपेट में दिखाया गया है:

आयात java.util.ArrayList;
आयात java.util.संग्रह;
आयात java.util.List;

सार्वजनिक वर्ग रिवर्सऑर्डर उदाहरण {
सार्वजनिक स्थैतिक शून्य मुख्य ( डोरी [ ] तर्क ) // मुख्य का निर्माण ( ) तरीका
{
सूची < पूर्णांक > testEle = नई ArrayList <> ( ) ;
testEle.जोड़ें ( 5 ) ;
testEle.जोड़ें ( 38 ) ;
testEle.जोड़ें ( 98 ) ;
testEle.जोड़ें ( 26 ) ;
testEle.जोड़ें ( 1 ) ;
testEle.जोड़ें ( 73 ) ;
System.out.println ( 'मूल सूची:' + परीक्षण ) ;
संग्रह.सॉर्ट ( टेस्टएल, कलेक्शंस.रिवर्सऑर्डर ( ) ) ;
System.out.println ( 'मैक्स हीप उत्पन्न:' + परीक्षण ) ;
}
}

उपरोक्त कोड की व्याख्या:

  • सबसे पहले, 'आयात करें' सारणी सूची ”,“ संग्रह ' और ' सूची जावा फ़ाइल में उपयोगिताएँ।
  • फिर, एक ' बनाएं सूची 'नामांकित' परीक्षण ” और सूची में डमी तत्व डालें।
  • अगला, ' क्रम से लगाना() 'विधि का उपयोग डेटा तत्वों को आरोही क्रम में क्रमबद्ध करने और सूची को पैरामीटर के रूप में पास करने के लिए किया जाता है' संग्रह.रिवर्सऑर्डर() ' तरीका। यह 'की छँटाई करता है परीक्षण 'उल्टे क्रम में सूची।

निष्पादन चरण की समाप्ति के बाद:

स्नैपशॉट से पता चलता है कि 'मैक्स हीप' 'कलेक्शन.रिवर्सऑर्डर ()' विधि का उपयोग करके उत्पन्न और सॉर्ट किया गया है।

निष्कर्ष

'बनाकर मैक्स ढेर ”, उपयोगकर्ता “maxHeapify()” और “Collections.reversOrder()” तरीकों का उपयोग कर सकते हैं। वे तत्वों के संग्रह को इस तरह से प्रबंधित करते हैं जो अधिकतम तत्व तक त्वरित पहुंच और क्रमबद्ध क्रम के कुशल रखरखाव की अनुमति देता है। यह पूरी तरह से विशिष्ट आवश्यकताओं और ढेर निर्माण प्रक्रिया पर आवश्यक नियंत्रण के स्तर पर निर्भर करता है।