आप सभी को C ++ में क्विकॉर्ट के बारे में जानना होगा



यह लेख आपको उदाहरणों के साथ C ++ में क्विकॉर्ट को कैसे लागू करना है, इसकी विस्तृत और व्यापक जानकारी प्रदान करेगा।

छँटाई एल्गोरिदम के ढेर सारे हैं। आपके एप्लिकेशन के लिए सही फिट का पता लगाना एक ऐसा कार्य है जिसमें किसी विशेष एल्गोरिथ्म के प्रदर्शन, समय की जटिलता, कोड की लंबाई, आदि जैसे कारकों की संक्षिप्त समझ की आवश्यकता होती है। इस पोस्ट में, हम निम्नलिखित क्रम में C ++ में Quicksort को लागू करने के लिए आवश्यक सभी आवश्यक अवधारणाओं पर एक नज़र डालेंगे:

क्विकॉर्ट एल्गोरिथम को समझना

बस युह्ही मर्ज़ सॉर्ट , Quicksort डिवाइड का अनुसरण करता है और रणनीति पर विजय प्राप्त करता है। विभाजन और जीत की रणनीति का उपयोग करके हम समस्या को कई उपप्रकारों में विभाजित करते हैं और उन्हें पुन: हल करते हैं। पहले, हम पूरी प्रक्रिया को चरण दर चरण समझेंगे और उसके बाद, एक उदाहरण की मदद से, हम पूरी प्रक्रिया की गहरी समझ विकसित करेंगे।





  1. सबसे पहले, हम उपयोगकर्ता से अनसोल्ड ऐरे के लिए कहेंगे।

  2. एक बार जब हमारे पास हमारा अनसोल्ड एरे होता है तो हमें एरे से एक पिवट वैल्यू का चयन करना होता है। हम कोई भी मूल्य चुन सकते हैं।



  3. एक बार जब हम धुरी बिंदु का चयन करते हैं उसके बाद हमें सरणी के अन्य तत्वों को इस तरह व्यवस्थित करने की आवश्यकता होती है, ताकि धुरी मूल्य से कम के सभी तत्वों को धुरी मूल्य के दाईं ओर रखा जाए और धुरी से अधिक सभी तत्व मूल्य को धुरी मूल्य के दाईं ओर रखा जाना है।

  4. हम अपने क्रमबद्ध सरणी प्राप्त करने तक चरण 3 का प्रदर्शन करते हैं।

अब, एक उदाहरण पर विचार करें और एल्गोरिथ्म को लागू करें और देखें कि यह कैसे काम करता है।



नमस्कार [५, ४, १, ११, ९, ६, २, ३] इस उदाहरण के लिए हम हमेशा सूची के सबसे सही तत्व के रूप में धुरी पर विचार करेंगे।

C ++ में क्विकॉर्ट

आइए प्रत्येक चरण पर जाएं और उस तर्क को समझें जो हमने समस्या को हल करने के लिए उपयोग किया था।

जावा ट्यूटोरियल में डेटा संरचना और एल्गोरिदम
  • पहले, हमने p 3 ’को अपनी धुरी के रूप में चुना और सभी तत्वों को‘ 3 ’से कम और सभी तत्वों को greater 3’ से अधिक दाईं ओर व्यवस्थित किया।

  • इस बिंदु पर, हमारे पास 2 उपप्रकार हैं। आइए सबसे पहले दाईं ओर उपप्रबंध को हल करें हमने अपनी धुरी के रूप में एक का चयन किया और दाईं ओर one 2 ’रखा।

  • दूसरे सबप्रोब्लम को हल करने के लिए हम अपनी धुरी के रूप में as 6 'का चयन करते हैं और उन तत्वों को रखते हैं जैसा हमने पहले चर्चा की थी।

  • हमारे पास 2 और उप-प्रजातियां हैं। पहले वाले को धुरी के रूप में 4 का चयन करके हल किया जाता है और दूसरे को धुरी के रूप में 9 का चयन करके हल किया जाता है। अंत में, हमारे पास अपने सॉर्ट किए गए सरणी को अंडरलाइन इंडेक्स पर रखे गए तत्वों के साथ है।

ध्यान दें- यहां समझने के लिए महत्वपूर्ण बिंदु यह है कि सभी ऑपरेशन एक ही सरणी में होते हैं। नई सरणियाँ नहीं बनाई गई हैं।

C ++ में क्विकॉर्ट के लिए स्यूडोकोड

क्विकॉर्ट (सरणी [], start_index, end_index) {if (start_index)

C ++ में क्विकॉर्ट का कार्यक्रम

हमने एल्गोरिथ्म को समझा और एल्गोरिथ्म के कामकाज की गहरी समझ विकसित की। Quicksort को C ++ में कार्यान्वित करें और सरणी को सॉर्ट करने के लिए एक प्रोग्राम लिखें।

c ++ मर्ज एल्गोरिथ्म
# नाम का उपयोग करके नाम स्थान std void swap_elements (int * a, int * b) {int temp = * a = a = * b * b = temp} int विभाजन (int array [], int start_index, int end_index) {int pivot = सरणी [end_index] int i = (start_index - 1) के लिए (int j = start_index j)<= end_index- 1 j++) { if (array[j] <= pivot) { i++ swap_elements(&array[i], &array[j]) } } swap_elements(&array[i + 1], &array[end_index]) return (i + 1) } void quickSort(int array[], int start_index, int end_index) { if (start_index < end_index) { int partition_index = partition(array, start_index, end_index) quickSort(array, start_index, partition_index - 1) quickSort(array, partition_index + 1, end_index) } } void printArray(int array[], int number) { int i cout<<'Sorted Array: ' for (i = 0 i < number i++) cout << array[i] << ' ' cout << endl } int main() { int Hello[30] int i int NumberofElements cout<>नंबर की लागत<<'Enter the elements one by one: ' for(i=0i>नमस्कार [i]} क्विकसॉर्ट (हैलो, 0, नंबरऑफिशल्स -1) प्रिंटअरे (हैलो, नंबरऑफ्स) रिटर्न 0}

आउटपुट:

समय जटिलता

आइए किसी भी सॉर्टिंग एल्गोरिदम के सबसे महत्वपूर्ण पहलू के बारे में बात करते हैं, अर्थात् समय की जटिलता। यह हमें विभिन्न परिदृश्यों में एल्गोरिदम के प्रदर्शन के बारे में बताता है। यदि हम अपने एप्लिकेशन के लिए इस एल्गोरिथ्म का उपयोग कर सकते हैं, तो ये मान हमें निर्णय लेने में मदद कर सकते हैं।

  • सबसे अच्छा मामला- पर)
  • औसत मामला- (nlogn)
  • सबसे खराब मामला- पर)

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

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