इस ट्यूटोरियल में, हम प्रत्येक सम्मिलन के बाद kवां सबसे छोटा तत्व ढूंढेंगे।
हम इस समस्या को हल करने के लिए मिन-हीप का उपयोग करेंगे। आइए प्रोग्राम पूरा करने के चरण देखते हैं।
- यादृच्छिक डेटा के साथ सरणी इनिशियलाइज़ करें।
- प्रायोरिटी क्यू इनिशियलाइज़ करें।
- k - 1 तक कोई kवां सबसे छोटा तत्व नहीं होगा। इसलिए, आप जो चाहें वह प्रतीक प्रिंट करें।
- एक लूप लिखें जो k + 1 से n तक चले।
- मिन-हीप की जड़ प्रिंट करें।
- यदि तत्व मिन-हीप की जड़ से बड़ा है, तो जड़ को पॉप करें और तत्व सम्मिलित करें।
उदाहरण
आइए कोड देखते हैं।
#include <bits/stdc++.h> using namespace std; void findKthSmallestElement(int elements[], int n, int k) { priority_queue<int, vector<int>, greater<int>> queue; for (int i= 0; i < k - 1; i++) { queue.push(elements[i]); cout << "- "; } queue.push(elements[k-1]); for (int i = k; i < n; i++) { cout << queue.top() << " "; if (elements[i] > queue.top()) { queue.pop(); queue.push(elements[i]); } } cout << queue.top() << endl; } int main() { int arr[] = {3, 5, 6, 2, 7, 8, 2, 3, 5, 9}; findKthSmallestElement(arr, 10, 5); return 0; }आउटपुट
यदि आप उपरोक्त कोड चलाते हैं, तो आपको निम्न परिणाम मिलेगा।
- - - - 2 3 3 3 5 5
निष्कर्ष
यदि ट्यूटोरियल में आपके कोई प्रश्न हैं, तो उन्हें कमेंट सेक्शन में लिखें।