विभिन्न छँटाई एल्गोरिदम के बारे में पढ़ने में मैंने यह उल्लेख किया है कि कुछ "स्थिर" हैं और कुछ नहीं हैं। एल्गोरिथ्म का चयन करते समय इसका क्या अर्थ है, और उस आधार पर क्या ट्रेडऑफ़ शामिल हैं?
विभिन्न छँटाई एल्गोरिदम के बारे में पढ़ने में मैंने यह उल्लेख किया है कि कुछ "स्थिर" हैं और कुछ नहीं हैं। एल्गोरिथ्म का चयन करते समय इसका क्या अर्थ है, और उस आधार पर क्या ट्रेडऑफ़ शामिल हैं?
जवाबों:
एक स्थिर सॉर्ट वह है जो इनपुट सेट के मूल क्रम को संरक्षित करता है, जहां तुलना एल्गोरिथ्म दो या अधिक वस्तुओं के बीच अंतर नहीं करता है।
एक सॉर्टिंग एल्गोरिथ्म पर विचार करें जो रैंक द्वारा कार्ड को सॉर्ट करता है , लेकिन सूट द्वारा नहीं। स्थिर क्रम यह गारंटी देगा कि एक ही रैंक वाले कार्डों का मूल क्रम संरक्षित है; अस्थिर प्रकार नहीं होगा।
स्थिर एल्गोरिदम तत्वों के सापेक्ष क्रम को संरक्षित करता है।
तो एक स्थिर छँटाई एल्गोरिथ्म मूल्यों के सापेक्ष क्रम को बनाए रखेगा जो समान के रूप में तुलना करता है।
एक सॉर्टिंग एल्गोरिथ्म पर विचार करें जहां हम उनके एक्स आयाम के आधार पर 2d अंक का संग्रह सॉर्ट करते हैं।
संग्रहित किया जाना है: {(6, 3), (5, 5), (6, 1), (1, 3)}
स्थिर क्रमबद्ध: {(1, 3), (5, 5), (6, 3), (6, 1)}
नियमित रूप से छाँटे गए: या तो {(1, 3), (5, 5), (6, 3), (6, 1)}
, या{(1, 3), (5, 5), (6, 1), (6, 3)}
ट्रेडऑफ़ के लिए ... ठीक है, स्थिर छँटाई कम कुशल है, लेकिन कभी-कभी आपको इसकी आवश्यकता होती है।
उदाहरण के लिए, जब कोई उपयोगकर्ता UI में मानों को सॉर्ट करने के लिए एक स्तंभ शीर्षलेख पर क्लिक करता है, तो यह समान मूल्यों के मामले में उसके पिछले क्रमबद्ध आदेश का उपयोग करने के लिए उचित है।