चयन सॉर्ट एल्गोरिदम पर हमला कर रहा है जो अलविदा काम करता है सरणी से सबसे छोटी संख्या ढूंढता है और फिर इसे पहले स्थान पर रखता है। ट्रैवर्स की जाने वाली अगली सरणी इंडेक्स से उस स्थिति के बगल में शुरू होगी जहां सबसे छोटी संख्या रखी गई है।
आइए इस अवधारणा को और स्पष्ट करने के लिए एक उदाहरण लेते हैं।
हमारे पास एक सरणी {6, 3, 8, 12, 9} है इस सरणी में सबसे छोटा तत्व 3 है। इसलिए हम 3 को पहले स्थान पर रखेंगे, इसके बाद सरणी {3, 6, 8, 12, जैसी दिखेगी। 9}. अब हम फिर से सबसे छोटी संख्या पाएंगे लेकिन इस बार हम अपनी खोज में 3 पर विचार नहीं करेंगे क्योंकि यह इसके स्थान पर है। अगले सबसे छोटे तत्व को ढूँढना जो कि 6 है, दूसरी स्थिति में 6 के साथ एक सरणी बनाना और फिर सरणी में क्रमबद्ध होने तक फिर से खोज करना।
चयन की कार्यप्रणाली सॉर्ट एल्गोरिथम-
निम्नलिखित चरणों का चयन क्रमबद्ध एल्गोरिथ्म द्वारा किया जाता है
आइए एक सरणी लें {20, 12 , 23, 55 ,21}
-
सरणी के पहले तत्व को न्यूनतम के रूप में सेट करें।
न्यूनतम =20
-
अगले तत्व के साथ न्यूनतम की तुलना करें, यदि यह न्यूनतम से छोटा है तो इस तत्व को न्यूनतम असाइन करें। इसे ऐरे के अंत तक करें।
12 :20> 12 की तुलना में, न्यूनतम =12
23 :12 <23 की तुलना में, न्यूनतम =12
55 :12 <55 की तुलना में, न्यूनतम =12
21 :12 <21 की तुलना में, न्यूनतम =12
-
न्यूनतम को सरणी के पहले स्थान (सूचकांक 0) पर रखें।
ऐरे ={12, 20, 23, 55, 21}
-
अगले पुनरावृति के लिए, पहले अवर्गीकृत तत्व से छँटाई शुरू करें यानी वह तत्व जहाँ न्यूनतम रखा गया है।
ऐरे ={12, 20, 23, 55, 21}
खोज 20 से शुरू होती है, अगला तत्व जहां न्यूनतम रखा जाता है।
पुनरावृत्ति 2 :
न्यूनतम =20
23 :20 <23 की तुलना में, न्यूनतम =20
55 :20 <55 की तुलना में, न्यूनतम =20
21 :20 <21 की तुलना में, न्यूनतम =20
न्यूनतम स्थान पर कोई परिवर्तन नहीं,
ऐरे ={12, 20, 23, 55, 21}
पुनरावृत्ति 3 :
न्यूनतम =23.
55 :23 <55 की तुलना में, न्यूनतम =23
21 :23> 21 की तुलना में, न्यूनतम =21
न्यूनतम को इंडेक्स में ले जाया जाता है =2
ऐरे ={12, 20, 21, 55, 23}
पुनरावृत्ति 4 :
न्यूनतम =55
23 :23 <55 की तुलना में, न्यूनतम =23
इंडेक्स में ले जाया गया न्यूनतम 3Array ={12, 20, 21, 23, 55}
उदाहरण
#include <stdio.h> int main() { int arr[10]={6,12,0,18,11,99,55,45,34,2}; int n=10; int i, j, position, swap; for (i = 0; i < (n - 1); i++) { position = i; for (j = i + 1; j < n; j++) { if (arr[position] > arr[j]) position = j; } if (position != i) { swap = arr[i]; arr[i] = arr[position]; arr[position] = swap; } } for (i = 0; i < n; i++) printf("%d\t", arr[i]); return 0; }
आउटपुट
0 2 6 11 12 18 34 45 55 99