"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > मैं अंतर्निहित फ़ंक्शंस या कस्टम विधियों का उपयोग करके C++ में 2D सरणी को कैसे सॉर्ट करूँ?

मैं अंतर्निहित फ़ंक्शंस या कस्टम विधियों का उपयोग करके C++ में 2D सरणी को कैसे सॉर्ट करूँ?

2024-11-20 को प्रकाशित
ब्राउज़ करें:920

How do I sort a 2D array in C   using built-in functions or custom methods?

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 14
Sorted 2D Array:
10 20
20 11
22 23
29 15
39 14
यह विधि सी में 2डी सरणियों को सॉर्ट करने के लिए एक व्यापक और कुशल समाधान प्रदान करती है, हालांकि इसके लिए एक कस्टम तुलना फ़ंक्शन के निर्माण और उपयोग की आवश्यकता होती है।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3