C में 2D ऐरे को बिल्ट-इन फ़ंक्शंस या वैकल्पिक तरीकों से सॉर्ट करना
C में 2D ऐरे को सॉर्ट करना एक अनोखी चुनौती पेश करता है, क्योंकि अंतर्निहित फ़ंक्शन जैसे std::sort() आमतौर पर 1D सरणियों के लिए डिज़ाइन किए गए हैं। हालाँकि, ऐसे विशिष्ट मामले हैं जहाँ आप विशिष्ट मानदंडों के आधार पर 2डी सरणी को क्रमबद्ध करना चाह सकते हैं, जैसे कि केवल पहले कॉलम मानों की तुलना करना।
std::qsort
का उपयोग करना &&&]हालांकि सी में मल्टी-कॉलम सॉर्टिंग के लिए प्रत्यक्ष अंतर्निहित फ़ंक्शन का अभाव है, std::qsort() एक बहुमुखी समाधान प्रदान करता है। यह फ़ंक्शन किसी सरणी के लिए एक सूचक, सरणी का आकार, सरणी के भीतर तत्वों का आकार और एक तुलना फ़ंक्शन लेता है। एक कस्टम तुलना फ़ंक्शन प्रदान करके, आप विशिष्ट सरणी तत्वों के आधार पर सॉर्टिंग मानदंड निर्दिष्ट कर सकते हैं।कस्टम सॉर्टिंग के लिए तुलनित्र फ़ंक्शन
तुलना फ़ंक्शन को पूर्णांक परिणाम लौटाना होगा दो सरणी तत्वों की तुलना के आधार पर। 2डी सरणी के मामले में, आपको सूचक अंकगणित का उपयोग करके अलग-अलग तत्वों तक पहुंचने की आवश्यकता होगी। निम्नलिखित उदाहरण पर विचार करें:int qsort_compare(const void *arg1, const void *arg2) {
int const *lhs = static_cast(arg1);
int const *rhs = static_cast(arg2);
return (lhs[0] यह तुलनित्र फ़ंक्शन पहले तत्व (पहले कॉलम मान के बराबर) की तुलना करता है और परिणाम के आधार पर उचित क्रम देता है।उदाहरण कार्यान्वयन
std::qsort() और कस्टम तुलना फ़ंक्शन को मिलाकर, आप C में 2D सरणी को सॉर्ट कर सकते हैं इस प्रकार है:#include
#include
using namespace std;
int main() {
int ar[5][2] = {
{20, 11},
{10, 20},
{39, 14},
{29, 15},
{22, 23}
};
qsort(ar, 5, sizeof(*ar), qsort_compare);
cout आउटपुट:
क्रमबद्ध 2डी सरणी:
10 20
20 11
22 23
29 15
39 14Sorted 2D Array:
10 20
20 11
22 23
29 15
39 14
यह विधि सी में 2डी सरणियों को सॉर्ट करने के लिए एक व्यापक और कुशल समाधान प्रदान करती है, हालांकि इसके लिए एक कस्टम तुलना फ़ंक्शन के निर्माण और उपयोग की आवश्यकता होती है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3