छँटाई तत्वों को आरोही (या) अवरोही क्रम में व्यवस्थित करने की प्रक्रिया है।
सॉर्टिंग के प्रकार
C भाषा पांच छँटाई तकनीक प्रदान करती है, जो इस प्रकार हैं -
- बबल सॉर्ट (या) एक्सचेंज सॉर्ट
- चयन क्रम
- सम्मिलन क्रम(या) रेखीय छँटाई
- त्वरित छँटाई (या) विभाजन विनिमय छँटाई
- मर्ज सॉर्ट (या) बाहरी सॉर्ट
मर्ज सॉर्ट करें
मर्ज सॉर्ट एक विभाजित और जीत विधि है। यह एक सरणी को दो आधे में विभाजित करता है, पुनरावर्ती रूप से जीतता है और विलय (गठबंधन) करता है।
आइए एक उदाहरण पर विचार करें जो नीचे दिया गया है -
एक क्रमबद्ध सरणी लें और सरणी को सॉर्ट करने के लिए मर्ज सॉर्ट तकनीक लागू करें।
38, 27, 43, 3, 9, 82, 10
अब, नीचे दिखाए अनुसार क्रमबद्ध करके एक सरणी को संयोजित करें -
उदाहरण
मर्ज सॉर्ट तकनीक का उपयोग करके तत्वों को सॉर्ट करने के लिए सी प्रोग्राम निम्नलिखित है -
#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("List before sorting\n"); for(i = 0; i <= max; i++) printf("%d ", a[i]); sort(0, max); printf("\nList after sorting\n"); for(i = 0; i <= max; i++) printf("%d ", a[i]); }
आउटपुट
जब उपरोक्त प्रोग्राम को निष्पादित किया जाता है, तो यह निम्न आउटपुट उत्पन्न करता है -
List before sorting 10 14 19 26 27 31 33 35 42 44 0 List after sorting 0 10 14 19 26 27 31 33 35 42 44