सिलेक्शन सॉर्ट एल्गोरिथम एक से अधिक बार बिना सॉर्ट किए गए हिस्से से बेस कंपोनेंट को ढूंढकर और शुरुआत की ओर रखकर किसी एक्ज़िबिट को सॉर्ट करता है। निर्धारण प्रकार के प्रत्येक जोर में, क्रमबद्ध उप-सरणी से आधार घटक को चुना जाता है और व्यवस्थित उप-सरणी में ले जाया जाता है।
उदाहरण
#include <iostream> #include <string.h> using namespace std; #define MAX_LEN 50 void selectionSort(char arr[][50], int n){ int i, j, mIndex; // Move boundary of unsorted subarray one by one char minStr[50]; for (i = 0; i < n-1; i++){ // Determine minimum element in unsorted array int mIndex = i; strcpy(minStr, arr[i]); for (j = i + 1; j < n; j++){ // check whether the min is greater than arr[j] if (strcmp(minStr, arr[j]) > 0){ // Make arr[j] as minStr and update min_idx strcpy(minStr, arr[j]); mIndex = j; } } // Swap the minimum with the first element if (mIndex != i){ char temp[50]; strcpy(temp, arr[i]); //swap item[pos] and item[i] strcpy(arr[i], arr[mIndex]); strcpy(arr[mIndex], temp); } } } int main(){ char arr[][50] = {"Tom", "Boyaka", "Matt" ,"Luke"}; int n = sizeof(arr)/sizeof(arr[0]); int i; cout<<"Given String is:: Tom, Boyaka, Matt, Luke\n"; selectionSort(arr, n); cout << "\nSelection Sorted is::\n"; for (i = 0; i < n; i++) cout << i << ": " << arr[i] << endl; return 0; }
यह उपरोक्त C++ प्रोग्राम प्रारंभ में प्रदर्शनी में सबसे छोटे घटक को चुनता है और इसे क्लस्टर में प्रमुख घटक के साथ बदल देता है। इसके बाद, यह बाद के घटक आदि के साथ क्लस्टर में दूसरे सबसे छोटे घटक की अदला-बदली करता है। इस तरह से प्रत्येक पास के लिए, प्रदर्शनी में सबसे छोटे घटक को चुना जाता है और पूरे क्लस्टर के व्यवस्थित होने तक उसकी वैध स्थिति में रखा जाता है। अंत में, सेक्शन सॉर्ट विधि दिए गए स्ट्रिंग को आरोही क्रम में इस प्रकार सॉर्ट करती है;
आउटपुट
Given string is:: Tom, Boyaka, Matt, Luke Selection Sorted:: Boyaka Luke Matt Tom