2012-11-13 15 views
8

मुझे सॉर्टिंग एल्गोरिदम सी qsort फ़ंक्शन का उपयोग करने के बारे में कोई जानकारी नहीं मिल रही है।किस सॉर्टिंग एल्गोरिदम qsort उपयोग करता है?

क्या यह quicksort है? मनुष्य में इसका उल्लेख नहीं है।

उत्तर

15

qsort का कार्यान्वयन निर्दिष्ट नहीं है: एक कार्यान्वयन किसी सॉर्टिंग एल्गोरिदम का उपयोग कर सकता है। दिलचस्प बात यह है कि इस तरह के स्थिर होने की आवश्यकता नहीं है, और कोई जटिलता आवश्यकता नहीं है।

qsort समारोह

सार

#include <stdlib.h> 
void qsort(void *base, size_t nmemb, size_t size, 
    int (*compar)(const void *, const void *)); 

विवरण

+०१२३५१६४१०:

qsort (सी 11 §7.22.5.2) के पूरे विवरण इस प्रकार है

qsort फ़ंक्शन nmemb ऑब्जेक्ट्स की एक सरणी टाइप करता है, जिसमें प्रारंभिक तत्व base द्वारा इंगित किया गया है। प्रत्येक ऑब्जेक्ट का आकार size द्वारा निर्दिष्ट किया गया है।

सरणी की सामग्री तुलनात्मक रूप से तुलना की गई तुलनात्मक तुलना के अनुसार आरोही क्रम में क्रमबद्ध होती है, जिसे दो तर्कों के साथ बुलाया जाता है जो तुलना की जा रही वस्तुओं को इंगित करते हैं। फ़ंक्शन शून्य से कम, बराबर या शून्य से अधिक पूर्णांक लौटाएगा यदि पहला तर्क क्रमशः कम से कम, बराबर या उससे अधिक माना जाता है।

यदि दो तत्व बराबर की तुलना करते हैं, परिणामी क्रमबद्ध सरणी में उनका क्रम निर्दिष्ट नहीं है।

रिटर्न

qsort समारोह कोई मान देता है।

2

सिद्धांत रूप में, qsort केवल वापसी मूल्यों और qsort और bsort की कॉल मूल्यों की बात करने के लिए परिभाषित किया गया है। Here आईएसओ मानक संदर्भ हैं।

प्रैक्टिस में, यह आमतौर पर quicksort का उपयोग करता है।

1

मानक यह ध्यान देने योग्य है के जेम्स McNellis के उद्धरण के लिए पूरक में GNU’s libc documentation का कहना है कि कि

qsort समारोह तथ्य यह है कि यह मूल रूप से था "जल्दी प्रकार" कलन विधि का उपयोग कार्यान्वित से अपने नाम निकला।

और यह एक alternative algorithm का उपयोग करने का निर्णय लिया, जाहिर है कि एक विलय प्रकार।

संबंधित मुद्दे