सॉर्टिंग एलिमेंट्स को आरोही (या अवरोही) क्रम में व्यवस्थित करने की प्रक्रिया है।
सॉर्टिंग के प्रकार
C भाषा पांच सॉर्टिंग तकनीक प्रदान करती है:
- बबल सॉर्ट (या) एक्सचेंज सॉर्ट
- सिलेक्शन सॉर्ट
- इन्सर्शन सॉर्ट (या) लीनियर सॉर्ट
- क्विक सॉर्ट (या) पार्टीशन एक्सचेंज सॉर्ट
- मर्ज सॉर्ट (या) एक्सटर्नल सॉर्ट
क्विक सॉर्ट
यह एक डिवाइड एंड कॉन्कर एल्गोरिथ्म है।
- चरण 1 - ऐरे से एक एलिमेंट चुनें, इसे पिवट एलिमेंट कहें।
- चरण 2 - अनसॉर्टेड ऐरे एलिमेंट को दो ऐरे में विभाजित करें।
- चरण 3 - यदि मान पिवट एलिमेंट से कम है तो पहले सब-अरे में आए, पिवट से बड़े मान वाले शेष एलिमेंट्स दूसरे सब-अरे में आएं।
नीचे दिए गए उदाहरण पर विचार करें, जहां
- P पिवट एलिमेंट है।
- L लेफ्ट पॉइंटर है।
- R राइट पॉइंटर है।
एलिमेंट्स हैं: 6, 3, 7, 2, 4, 5।
उदाहरण
क्विक सॉर्ट तकनीक का उपयोग करके एलिमेंट्स को सॉर्ट करने का C प्रोग्राम:
#include <stdio.h>
void quicksort(int number[25], int first, int last) {
int i, j, pivot, temp;
if(first < last) {
pivot = first;
i = first;
j = last;
while(i < j) {
while(number[i] <= number[pivot] && i < last)
i++;
while(number[j] > number[pivot])
j--;
if(i < j) {
temp = number[i];
number[i] = number[j];
number[j] = temp;
}
}
temp = number[pivot];
number[pivot] = number[j];
number[j] = temp;
quicksort(number, first, j - 1);
quicksort(number, j + 1, last);
}
}
int main() {
int i, count, number[25];
printf("कितने एलिमेंट्स दर्ज करने हैं?: ");
scanf("%d", &count);
printf("%d एलिमेंट्स दर्ज करें: ", count);
for(i = 0; i < count; i++)
scanf("%d", &number[i]);
quicksort(number, 0, count - 1);
printf("सॉर्टेड एलिमेंट्स का क्रम: ");
for(i = 0; i < count; i++)
printf(" %d", number[i]);
return 0;
}
आउटपुट
कितने एलिमेंट्स दर्ज करने हैं?: 10 10 एलिमेंट्स दर्ज करें: 2 3 5 7 1 9 3 8 0 4 सॉर्टेड एलिमेंट्स का क्रम: 0 1 2 3 3 4 5 7 8 9