यहां हम देखेंगे कि C में qsort () और C++ में सॉर्ट () में क्या अंतर हैं।
सी qsort() फ़ंक्शन प्रदान करता है, जिसका उपयोग किसी सरणी को सॉर्ट करने के लिए किया जा सकता है। फ़ंक्शन तर्क और सिंटैक्स नीचे जैसा है।
void qsort(void *base, size_t num, size_t size, int (*comparator) (const void*, const void*));
यह फ़ंक्शन उस सरणी का आधार पता लेता है, उस सरणी के तत्वों की संख्या। सरणी में प्रत्येक आइटम का आकार, और एक तुलनित्र फ़ंक्शन।
सी ++ सॉर्ट () फ़ंक्शन प्रदान करता है। यह सी ++ एसटीएल के अंदर मौजूद है। तर्क और वाक्य रचना नीचे की तरह है।
void sort(T first, T last, Compare c);
यहां दोहराए गए तत्वों के क्रम को संरक्षित करने की गारंटी नहीं है। उस उद्देश्य के लिए, हम C++ STL द्वारा प्रदान किए गए स्थिर_सॉर्ट का उपयोग कर सकते हैं।
qsort() और सॉर्ट() के बीच अंतर
qsort() in C | C++ में सॉर्ट करें() |
---|---|
यह क्विकसॉर्ट एल्गोरिथम का उपयोग करता है। | यह इंट्रोसॉर्ट का उपयोग करता है। यह हाइब्रिड सॉर्टिंग एल्गोरिदम है। यहां विभिन्न कार्यान्वयन विभिन्न एल्गोरिदम का उपयोग करते हैं। GNU C++ STL तीन-भाग हाइब्रिड सॉर्टिंग का उपयोग करता है। इंट्रोसॉर्ट, क्विकॉर्ट और इंसर्शन सॉर्ट। |
सी मानक इस सॉर्टिंग एल्गोरिदम की जटिलताओं के बारे में बात नहीं करता है। | इस मामले में जटिलता O(n logn) सबसे खराब स्थिति में C++11 सॉर्ट() में है। कुछ पिछले संस्करण सॉर्ट() सबसे खराब स्थिति में O(n2) लेते हैं, और औसत स्थिति में, उन्होंने O(nlogn) लिया। |
इस प्रकार का रनिंग टाइम सॉर्ट से बड़ा है() | चलने का समय qsort() से कम है। |
qsort() विभिन्न प्रकार के डेटा के लिए लचीला नहीं है। | सॉर्ट() लचीला है। यह C सरणियों, C++ वैक्टर, C++ डेक और कुछ अन्य कंटेनरों को भी सॉर्ट कर सकता है। |
यह प्रकार अधिक सुरक्षित नहीं है। यह डेटा तक पहुंचने के लिए असुरक्षित शून्य बिंदुओं का उपयोग करता है। | यह छँटाई तकनीक अधिक सुरक्षित है। डेटा तक पहुँचने के लिए इसे किसी असुरक्षित शून्य सूचक की आवश्यकता नहीं है। |