सॉर्टिंग एलिमेंट्स को आरोही (या अवरोही) क्रम में व्यवस्थित करने की प्रक्रिया है।
सॉर्टिंग के प्रकार
C भाषा पांच सॉर्टिंग तकनीक प्रदान करती है:
- बबल सॉर्ट (या) एक्सचेंज सॉर्ट
- सिलेक्शन सॉर्ट
- इन्सर्शन सॉर्ट (या) लीनियर सॉर्ट
- क्विक सॉर्ट (या) पार्टीशन एक्सचेंज सॉर्ट
- मर्ज सॉर्ट (या) एक्सटर्नल सॉर्ट
मर्ज सॉर्ट
मर्ज सॉर्ट एक डिवाइड एंड कॉन्कर मेथड है। यह ऐरे को दो हिस्सों में विभाजित करता है, रिकर्सिवली कॉन्कर करता है और मर्ज (कॉम्बाइन) करता है।
नीचे दिए गए उदाहरण पर विचार करें:
एक अनसॉर्टेड ऐरे लें और मर्ज सॉर्ट तकनीक लागू करके ऐरे को सॉर्ट करें।
38, 27, 43, 3, 9, 82, 10
अब, सॉर्टिंग करके ऐरे को कॉम्बाइन करें:
उदाहरण
मर्ज सॉर्ट तकनीक का उपयोग करके एलिमेंट्स को सॉर्ट करने का C प्रोग्राम:
#include <stdio.h>
#define max 10
int a[11] = { 10, 14, 19, 26, 27, 31, 33, 35, 42, 44, 0 };
int b[10];
void merging(int low, int mid, int high) {
int l1, l2, i;
for(l1 = low, l2 = mid + 1, i = low; l1 <= mid && l2 <= high; i++) {
if(a[l1] <= a[l2])
b[i] = a[l1++];
else
b[i] = a[l2++];
}
while(l1 <= mid)
b[i++] = a[l1++];
while(l2 <= high)
b[i++] = a[l2++];
for(i = low; i <= high; i++)
a[i] = b[i];
}
void sort(int low, int high) {
int mid;
if(low < high) {
mid = (low + high) / 2;
sort(low, mid);
sort(mid + 1, high);
merging(low, mid, high);
} else {
return;
}
}
int main() {
int i;
printf("सॉर्टिंग से पहले लिस्ट\n");
for(i = 0; i <= max; i++)
printf("%d ", a[i]);
sort(0, max);
printf("\nसॉर्टिंग के बाद लिस्ट\n");
for(i = 0; i <= max; i++)
printf("%d ", a[i]);
}
आउटपुट
सॉर्टिंग से पहले लिस्ट 10 14 19 26 27 31 33 35 42 44 0 सॉर्टिंग के बाद लिस्ट 0 10 14 19 26 27 31 33 35 42 44