क्विकॉर्ट को जावा में कैसे लागू करें?



यह लेख आपको एक और डिवाइड एंड कॉनकॉर सॉर्टिंग एल्गोरिथम पेश करेगा जो क्विकॉर्टोर्ट इन जावा है और इसे एक प्रदर्शन के साथ पालन करना है।

QuickSort एक डिवाइड एंड कॉनकॉर एल्गोरिथ्म है। डिवाइड एंड कॉन्कर एल्गोरिथ्म डिजाइन प्रतिमान में, हम उप-समस्याओं में समस्याओं को पुनरावर्ती रूप से विभाजित करते हैं और फिर उप-समस्याओं को हल करते हैं और अंतिम परिणाम को खोजने के लिए समाधानों को जोड़ते हैं। इस लेख में हम क्विकसॉर्ट इन पर ध्यान केंद्रित करेंगे

इस लेख में निम्नलिखित बिंदुओं को शामिल किया जाएगा,





चलो शुरू करें!

समस्याओं को उप-समस्याओं में विभाजित करते समय ध्यान रखने वाली एक बात यह है कि उप-समस्याओं की संरचना मूल समस्या के रूप में नहीं बदलती है।
डिवाइड एंड कॉन्कर एल्गोरिथ्म में 3 चरण हैं:



  • डिवाइड: समस्या को उपप्रकारों में तोड़ना
  • जीतना: पुन: अवशिष्ट को हल करना
  • गठबंधन करें: अंतिम परिणाम प्राप्त करने के लिए समाधानों का संयोजन

छवि- जावा में त्वरित क्रम- एडुरका

फूट डालो और जीतो प्रतिमान पर आधारित विभिन्न एल्गोरिदम हैं। त्वरित क्रमबद्ध और विलय प्रकार उनमें से हैं।

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



त्वरित सॉर्ट एल्गोरिथ्म के कार्यान्वयन के बारे में बात करते हैं। क्विकसॉर्ट एल्गोरिदम एक पिवट तत्व लेते हैं और पिवट एलीफेंट के चारों ओर के ऐरे को पार्टीशन करते हैं। क्विकसॉट की विविधताओं की संख्या है जो इस बात पर निर्भर करती है कि आप धुरी तत्व को कैसे चुनते हैं। धुरी तत्व को चुनने के कई तरीके हैं:

  • पहला तत्व चुनना
  • अंतिम तत्व उठाओ
  • एक यादृच्छिक तत्व चुनना
  • माध्य तत्व को चुनना

समझने के लिए अगली महत्वपूर्ण बात है, त्वरित सॉर्ट एल्गोरिथ्म में विभाजन () फ़ंक्शन। पिवट तत्व लेने के लिए विभाजन कार्य, इसे सही स्थिति पर रखता है, पिवट तत्व से छोटे सभी तत्वों को उसके बाईं ओर ले जाता है और सभी तत्व इसके दाईं ओर बड़े होते हैं। क्विकॉर्ट को ऐसा करने में रैखिक समय लगता है।
फिर सरणी को पिवट तत्व से दो भागों में विभाजित किया गया है (यानी पिवट से कम तत्व और पिवट से अधिक तत्व) और दोनों सरणियों को क्विकसॉर्ट एल्गोरिथ्म का उपयोग करके पुनरावर्ती रूप से क्रमबद्ध किया गया है।

अब जब हम क्विकसॉर्ट एल्गोरिथम के काम को समझते हैं। आइए समझते हैं कि जावा में क्विकॉर्ट एल्गोरिथम को कैसे लागू किया जाए।

जल्दी से सुलझाएं समारोह:

/ * क्विकॉर्ट फंक्शन को सबसे कम और उच्चतम सूचकांक के साथ क्रमबद्ध किए जाने की जरूरत है * /

शून्य प्रकार (इंटिरियर अरेस्ट [], इंट लोइंडेक्स, इंट हाईइंडेक्स) {// जब तक लोइंडेक्स = हाईइंडेक्स अगर (लोइंडेक्स)

अब हमें यह समझने के लिए कि यह कैसे काम करता है, विभाजन कोड को देखें।

विभाजन कोड

विभाजन कोड में, हम आखिरी तत्व को धुरी तत्व के रूप में चुनेंगे। हम पूर्ण सरणी (यानी हमारे मामले में वैरिएबल जे का उपयोग करके) को पार करते हैं। हम सरणी में अंतिम सबसे छोटे तत्व का ट्रैक रखते हैं (यानी हमारे मामले में चर i का उपयोग करके)। यदि हमें धुरी से छोटा कोई तत्व दिखाई देता है, तो हम वर्तमान तत्व को एक [j] गिरफ्तारी [i] के साथ स्थानांतरित करते हैं, अन्यथा हम आगे बढ़ना जारी रखते हैं।

int पार्टीशन (int arr [], int lowIndex, int highIndex) {// अंतिम तत्व को पिवट int pivot = arrest [highIndex] // बनाना। i का उपयोग pivot int से छोटे तत्वों पर नज़र रखने के लिए i = (lowIndex-1) for (int j = lowIndex j)

अब जब आप क्विकॉर्ट और पार्टीशन फंक्शन को समझ गए हैं, तो हमें पूरा कोड देखने की जल्दी करें

जल्दी से सुलझाएं जावा कोड

क्लास क्विकसॉर्ट {// विभाजन विधि इंट विभाजन (इंट अरेस्ट [], इंट लोइंडेक्स, इंट हाईइंडेक्स) {इंट पिवट = अरेस्ट [हाईइंडेक्स] इंट आई = (लोइंडेक्स -1) फॉर (इंट जे) - लोइंडेक्स जे

// छँटाई विधि

शून्य प्रकार (int arr [], int lowIndex, int highIndex) {if (lowIndex)

// सरणी को मुद्रित करने की विधि

स्थैतिक शून्य प्रिंटअरे (int arr []) {int n = arr.length लिए (int i = 0 i)

// मुख्य विधि

सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग आर्ग्स []) {int arr [] = {101, 37, 68, 29, 11, 5} int n = arr.length QuickSort ob = new QuickSort () ob.sort (गिरफ्तारी, 0) n-1) System.out.println ('सॉर्ट किया गया एरे') PrintArray (गिरफ्तार)}}

आउटपुट:

आउटपुट- जावा में त्वरित क्रम- एडुरका

अब उपरोक्त जावा प्रोग्राम को निष्पादित करने के बाद आप समझ गए होंगे कि क्विकॉर्ट कैसे काम करता है और इसे जावा में कैसे लागू किया जाता है।इस प्रकार हम 'जावा में क्विकॉर्ट' पर इस लेख के अंत में आए हैं। यदि आप और अधिक सीखना चाहते हैं,इसकी जाँच पड़ताल करो Edureka, एक विश्वसनीय ऑनलाइन शिक्षण कंपनी द्वारा। एडुर्का के जावा जे 2 ईई और एसओए प्रशिक्षण और प्रमाणन पाठ्यक्रम आपको हाइबरनेट और स्प्रिंग जैसे विभिन्न जावा फ्रेमवर्क के साथ कोर और उन्नत जावा अवधारणाओं दोनों के लिए प्रशिक्षित करने के लिए डिज़ाइन किया गया है।

क्या आप हमसे कोई प्रश्न पूछना चाहते हैं? कृपया इस ब्लॉग के टिप्पणी अनुभाग में इसका उल्लेख करें और हम जल्द से जल्द आपको वापस कर देंगे।

जावास्क्रिप्ट में सरणी का आकार