std::next_permutation Implementation Explanation
std::next_permutation एल्गोरिदम किसी दिए गए अनुक्रम के अगले लेक्सिकोग्राफ़िक रूप से बड़े क्रमपरिवर्तन की गणना करता है। इसके व्यवहार को समझने के लिए इसके कार्यान्वयन को समझना महत्वपूर्ण है। , एक तत्व जो अपने उत्तराधिकारी से छोटा है)। यदि कोई आरोहक नहीं मिलता है, तो इसका मतलब है कि अनुक्रम घटते क्रम में है, इस स्थिति में यह सबसे छोटे क्रमपरिवर्तन प्राप्त करने के लिए अनुक्रम को उलट देता है।
अन्यथा, एल्गोरिथ्म अनुक्रम में दाईं ओर सबसे छोटा तत्व ढूंढकर जारी रखता है आरोही का (जिसे "k" कहा जाता है)। फिर इस तत्व को आरोही के साथ बदल दिया जाता है। अंत में, घटते क्रम को बनाए रखने के लिए आरोही के दाईं ओर के तत्वों को उलट दिया जाता है। वर्तमान तत्व की जांच की जा रही है। जब मैं एक आरोही होता हूं तो i के दाईं ओर। प्रत्येक पुनरावृत्ति के भीतर:
यदि i एक आरोही नहीं है, तो यह i और j को घटा देता है।यदि मैं एक आरोही है, तो यह i (k) के दाईं ओर सबसे छोटा तत्व ढूंढता है ), इसे i के साथ स्वैप करता है, और i के दाईं ओर सब कुछ उलट देता है।उदाहरण
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3