सॉर्टिंग क्यों जरूरी है?
सॉर्टिंग डेटा को आरोही या अवरोही क्रम में व्यवस्थित करने की प्रक्रिया है। यह खोज को आसान बनाती है।
- मनुष्यों को जल्दी खोज की आवश्यकता महसूस हुई तो सॉर्टिंग की अवधारणा आई।
- डेटाबेस में रिकॉर्ड, रोल नंबर, टेलीफोन डायरेक्टरी, पुस्तक के पेज आदि खोजने में सॉर्टिंग मदद करती है।
- अनसॉर्टेड डेटा में खोज मुश्किल होती है; सॉर्टिंग डेटा को क्रमबद्ध कर खोज को सरल बनाती है।
सॉर्टिंग दक्षता के मानदंड
कौन सा एल्गोरिदम बेहतर है, यह तय करने के दो मुख्य मानदंड हैं:
- समय: दिए गए डेटा को सॉर्ट करने में लगा समय।
- मेमोरी स्पेस: सॉर्टिंग के लिए आवश्यक अतिरिक्त मेमोरी।
कंप्यूटर कार्ड्स की तरह मैन्युअल सॉर्टिंग नहीं करते; वैज्ञानिकों ने विभिन्न एल्गोरिदम विकसित किए हैं।
उदाहरण: सिलेक्शन सॉर्ट प्रोग्राम
#include <stdio.h>
int main() {
int a[50], i, j, n, t, sm;
printf("Enter number of elements: ");
scanf("%d", &n);
printf("Enter elements: ");
for(i = 0; i < n; i++)
scanf("%d", &a[i]);
for (i = 0; i < n-1; i++) {
sm = i;
for (j = i+1; j < n; j++) {
if (a[j] < a[sm])
sm = j;
}
t = a[i];
a[i] = a[sm];
a[sm] = t;
}
printf("Sorted array: ");
for (i = 0; i < n; i++)
printf("%d\t", a[i]);
return 0;
}
आउटपुट
Enter number of elements: 4 Enter elements: 34 12 56 7 Sorted array: 7 12 34 56
सामान्य सॉर्टिंग एल्गोरिदम
- बबल सॉर्ट - सरल लेकिन धीमा O(n²)
- सिलेक्शन सॉर्ट - कम स्वैप, O(n²)
- इन्सर्शन सॉर्ट - छोटे/लगभग सॉर्टेड डेटा के लिए अच्छा
- मर्ज सॉर्ट - O(n log n), स्थिर
- क्विक सॉर्ट - O(n log n) औसत, इन-प्लेस
- हीप सॉर्ट - O(n log n), गारंटीड