उद्देश्य: एक कुंजी के आधार पर वस्तुओं की एक श्रृंखला को कुशलतापूर्वक सॉर्ट करना, स्थिरता और स्थिरता बनाए रखना।
एल्गोरिदम अनुशंसा: जबकि कई सॉर्टिंग एल्गोरिदम मौजूद हैं, आपकी स्थिरता की विशिष्ट आवश्यकता के लिए, क्विकसॉर्ट या मर्जसॉर्ट जैसे गैर-स्थिर सॉर्टिंग एल्गोरिदम के एक संशोधित संस्करण को लागू करने पर विचार करें।
स्थिर छँटाई तकनीक:
स्थिरता सुनिश्चित करने के लिए, क्रमबद्ध तुलना फ़ंक्शन में एक अतिरिक्त मानदंड जोड़ें। विशेष रूप से, दो समान तत्वों की तुलना करते समय, इनपुट सरणी में टाईब्रेकर के रूप में उनकी मूल स्थिति का उपयोग करें। यह एक ही कुंजी के साथ तत्वों के क्रम को बनाए रखेगा। // तत्वों की प्रारंभिक स्थिति प्राप्त करें स्थिरांक स्थिति = arr.map((el, i) => i); // संशोधित तुलना फ़ंक्शन का उपयोग करके क्रमबद्ध करें arr.sort((ए, बी) => { स्थिरांक कुंजीए = ए[कुंजी]; स्थिरांक कुंजीबी = बी[कुंजी]; यदि (keyA === keyB) { //स्थिरता के लिए वापस स्थिति में आ जाएं वापसी स्थिति[ए] - स्थिति[बी]; } वापसी आदेश === "एएससी"? कीए - कीबी : कीबी - कीए; }); वापसी गिरफ्तारी; };
उदाहरण उपयोग:
const stableSort = (arr, key, order) => {
// Get initial positions of elements
const positions = arr.map((el, i) => i);
// Sort using modified comparison function
arr.sort((a, b) => {
const keyA = a[key];
const keyB = b[key];
if (keyA === keyB) {
// Fall back to position for stability
return positions[a] - positions[b];
}
return order === "asc" ? keyA - keyB : keyB - keyA;
});
return arr;
};
इस तकनीक का उपयोग करके, आप गैर-स्थिर सॉर्टिंग एल्गोरिदम से भी स्थिर सॉर्टिंग प्राप्त कर सकते हैं, जिससे यह लगभग 200-300 ऑब्जेक्ट के आपके परिदृश्य के लिए उपयुक्त हो जाता है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3