चयन सॉर्ट एक हमला करने वाला एल्गोरिदम है जो किसी सरणी से सबसे छोटी संख्या को खोजने के लिए काम करता है और फिर उसे पहले स्थान पर रखता है। ट्रैवर्स की जाने वाली अगली सरणी इंडेक्स से शुरू होगी, उस स्थिति के बगल में, जहां सबसे छोटी संख्या रखी गई है।
चयन क्रम की प्रक्रिया
-
तत्वों की सूची में पहला सबसे छोटा तत्व चुनें और उसे पहले स्थान पर रखें।
-
सूची में शेष तत्वों के लिए इसे तब तक दोहराएं जब तक कि सभी तत्व क्रमबद्ध न हो जाएं।
निम्नलिखित सूची पर विचार करें -
पहला पास
Sm = a[0] = 30 Sm
ए [1] <एसएम $\वर्ग$ $\वर्ग$ 50 <30 (एफ) $\वर्ग$ $\वर्ग$ 30
a[2]
ए[3] <एसएम $\वर्ग$ $\वर्ग$ 10 <30 (टी) $\वर्ग$ $\वर्ग$ 10
ए [4] <एसएम $\वर्ग$ $\वर्ग$ 20<10 (एफ) $\वर्ग$ $\वर्ग$ 10
10 50 40 30 20
दूसरा पास
Sm = a[1] = 50 sm
a[2] <एसएम $\वर्ग$ $\वर्ग$ 40 <50 (टी) $\वर्ग$ 40 $\वर्ग$
a[3]
a[4] <एसएम $\वर्ग$ $\वर्ग$ 20<30 (टी) $\वर्ग$ 20
10 20 40 30 50
तीसरा पास
Sm = a[2] = 40 Sm
ए [3] <एसएम $\वर्ग$ $\वर्ग$ 30 <40 (टी) $\वर्ग$ $\वर्ग$ 40
a[4]
10 20 30 40 50
चौथा पास
Sm = a[3] = 40 Sm
a[4] <$\square$ $\square$ sm 50 <40 (F) $\square$ 40 $\square$ एक्सचेंज a[3] sm वैल्यू के साथ
प्रक्रिया
चयन छँटाई के लिए नीचे दी गई प्रक्रिया देखें।
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; } }
उदाहरण
चयन छँटाई तकनीक के लिए सी कार्यक्रम निम्नलिखित है -
#include<stdio.h> int main(){ int a[50], i,j,n,t,sm; printf("enter the No: of elements in the list:\n"); scanf("%d", &n); printf("enter the elements:\n"); 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 ("after selection sorting the elements are:\n"); for (i=0; i<n; i++) printf("%d\t", a[i]); return 0; }
आउटपुट
जब उपरोक्त प्रोग्राम को निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -
enter the No: of elements in the list: 4 enter the elements: 45 12 37 68 after selection sorting the elements are: 12 37 45 68