छँटाई तत्वों को आरोही (या) अवरोही क्रम में व्यवस्थित करने की प्रक्रिया है।
सॉर्टिंग के प्रकार
सी भाषा पांच छँटाई तकनीक प्रदान करती है, जो इस प्रकार हैं -
- बबल सॉर्ट (या) एक्सचेंज सॉर्ट
- चयन क्रम
- सम्मिलन क्रम(या) रेखीय छँटाई
- त्वरित छँटाई (या) विभाजन विनिमय छँटाई
- मर्ज सॉर्ट (या) बाहरी सॉर्ट
त्वरित क्रमित करें
यह फूट डालो और जीतो एल्गोरिथम है।
- चरण 1 - किसी सरणी से कोई तत्व चुनें, इसे पिवट तत्व कहें।
- चरण 2 - एक क्रमबद्ध सरणी तत्व को दो सरणियों में विभाजित करें।
- चरण 3 - यदि पिवट तत्व से कम मान पहले उप सरणी के अंतर्गत आता है, तो पिवट से अधिक मान वाले शेष तत्व दूसरे उप सरणी में आते हैं।
नीचे दिए गए एक उदाहरण पर विचार करें, जिसमें
- P मुख्य तत्व है।
- L बायां सूचक है।
- R सही सूचक है।
तत्व 6, 3, 7, 2, 4, 5 हैं।
अब,
- धुरी स्थिर स्थिति में है।
- बाएं सभी तत्व कम हैं।
- सही तत्व पिवट से बड़े होते हैं।
- अब, सरणी को 2 उप सरणियों में बाएँ भाग और दाएँ भाग में विभाजित करें।
- बाएं विभाजन लें त्वरित क्रम लागू करें।
अब,
- धुरी स्थिर स्थिति में है।
- सभी बाएं तत्व कम और क्रमबद्ध हैं
- सही तत्व बड़े होते हैं और क्रमबद्ध क्रम में होते हैं।
- अंतिम क्रमबद्ध सूची 2, 3, 4, 5, 6, 7 के दो उप सरणियों को मिला रही है
उदाहरण
त्वरित सॉर्ट तकनीक का उपयोग करके तत्वों को सॉर्ट करने के लिए सी प्रोग्राम निम्नलिखित है -
#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("How many elements are u going to enter?: "); scanf("%d",&count); printf("Enter %d elements: ", count); for(i=0;i<count;i++) scanf("%d",&number[i]); quicksort(number,0,count-1); printf("Order of Sorted elements: "); for(i=0;i<count;i++) printf(" %d",number[i]); return 0; }
आउटपुट
जब उपरोक्त प्रोग्राम को निष्पादित किया जाता है, तो यह निम्न आउटपुट उत्पन्न करता है -
How many elements are u going to enter?: 10 Enter 10 elements: 2 3 5 7 1 9 3 8 0 4 Order of Sorted elements: 0 1 2 3 3 4 5 7 8 9