দ্য সিলেকশন সর্ট অ্যালগরিদম একটি প্রদর্শনীকে একাধিকবার সাজানো না হওয়া অংশ থেকে বেস উপাদান খুঁজে বের করে এবং এটিকে শুরুর দিকে রেখে দেয়। সংকল্প সাজানোর প্রতিটি জোরে, সাজানো না করা সাবয়ারে থেকে বেস কম্পোনেন্ট বাছাই করা হয় এবং সাজানো সাবয়ারেতে স্থানান্তর করা হয়।
উদাহরণ
#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