C ++ qsort () - C ++ मानक पुस्तकालय

C ++ में फ़ंक्शन qsort () क्विकर एल्गोरिथम का उपयोग करके आरोही क्रम में दिए गए सरणी को क्रमबद्ध करता है।

क्यूसोर्ट () फ़ंक्शन यह तुलना करने के लिए तुलनात्मक फ़ंक्शन का उपयोग करता है कि कौन सा तत्व दूसरे से छोटा / अधिक है।

qort () प्रोटोटाइप

 void qsort (शून्य * आधार, size_t संख्या, size_t आकार, int (* तुलना) (const void *, const void *));

फ़ंक्शन को हेडर फ़ाइल में परिभाषित किया गया है।

क्षार () फ़ंक्शन आरोही क्रम में आधार द्वारा बताई गई सरणी को क्रमबद्ध करता है। सरणी में numतत्व होते हैं, प्रत्येक आकार बाइट्स।

तुलना द्वारा इंगित फ़ंक्शन का उपयोग सरणी के दो तत्वों की तुलना करने के लिए किया जाता है। यह फ़ंक्शन आरोही क्रम में ही सरणी की सामग्री को संशोधित करता है।

हालांकि, यदि दो या अधिक तत्व समान हैं, तो उनका क्रम अपरिभाषित है।

qsort () पैरामीटर

  • आधार: सॉर्ट करने के लिए सरणी के पहले तत्व को इंगित करता है
  • संख्या: सरणी में तत्व की संख्या
  • आकार: सरणी में प्रत्येक तत्व के बाइट्स में आकार
  • तुलना: एक पॉइंटर एक फ़ंक्शन के लिए जो दो तत्वों की तुलना करता है। यह लौट आता है
    • एक नकारात्मक पूर्णांक यदि पहला तर्क दूसरे से कम है
    • एक सकारात्मक पूर्णांक यदि पहला तर्क दूसरे से अधिक है
    • शून्य यदि दोनों तर्क समान हैं

तुलना फ़ंक्शन का प्रोटोटाइप ऐसा दिखता है:

 int की तुलना (const void * a, const void * b);

qsort () वापसी मान

Qsort () फ़ंक्शन कुछ भी वापस नहीं करता है। क्रमबद्ध सरणी को आधार द्वारा इंगित किया गया है।

उदाहरण: कैसे काम करता है?

 #include #include using namespace std; int compare(const void* a, const void* b) ( const int* x = (int*) a; const int* y = (int*) b; if (*x> *y) return 1; else if (*x < *y) return -1; return 0; ) int main() ( const int num = 10; int arr(num) = (9,4,19,2,7,9,5,15,23,3); cout << "Before sorting" << endl; for (int i=0; i 

When you run the program, the output will be:

 Before sorting 9 4 19 2 7 9 5 15 23 3 After sorting 2 3 4 5 7 9 9 15 19 23

दिलचस्प लेख...