সোর্টেড অ্যারে হলো এমন একটি অ্যারে যেখানে প্রতিটি উপাদান কোনো নির্দিষ্ট ক্রমে সাজানো থাকে যেমন সংখ্যাসূচক, বর্ণানুক্রমিক ইত্যাদি। সংখ্যাসূচক অ্যারে সাজানোর জন্য অনেক অ্যালগরিদম রয়েছে যেমন বাবল সোর্ট, ইনসার্শন সোর্ট, সিলেকশন সোর্ট, মার্জ সোর্ট, কুইক সোর্ট, হিপ সোর্ট ইত্যাদি। নিচে সিলেকশন সোর্ট ব্যবহার করে অ্যারে সাজানোর বিস্তারিত দেওয়া হলো।
সিলেকশন সোর্ট হলো একটি সাজানোর পদ্ধতি যা একটি সোর্টেড অ্যারে তৈরি করে। এটি অ্যারেতে থেকে বারবার সবচেয়ে ছোট উপাদানটি খুঁজে বের করে এবং এনসর্টেড অংশের শুরুতে থাকা উপাদানের সাথে ইন্টারচেঞ্জ করে।
সিলেকশন সোর্ট ব্যবহার করে সোর্টেড অ্যারে বাস্তবায়ন করার একটি প্রোগ্রাম নিচে দেওয়া হলো:
উদাহরণ
#include <iostream>
using namespace std;
void selectionSort(int a[], int n) {
int i, j, min, temp;
for (i = 0; i < n - 1; i++) {
min = i;
for (j = i + 1; j < n; j++)
if (a[j] < a[min])
min = j;
temp = a[i];
a[i] = a[min];
a[min] = temp;
}
}
int main() {
int a[] = { 22, 91, 35, 78, 10, 8, 75, 99, 1, 67 };
int n = sizeof(a) / sizeof(a[0]);
int i;
cout << "Given array is:" << endl;
for (i = 0; i < n; i++)
cout << a[i] << " ";
cout << endl;
selectionSort(a, n);
cout << "\nSorted array is: \n";
for (i = 0; i < n; i++)
cout << a[i] << " ";
return 0;
}
আউটপুট
Given array is: 22 91 35 78 10 8 75 99 1 67 Sorted array is: 1 8 10 22 35 67 75 78 91 99
উপরোক্ত প্রোগ্রামে, selectionSort() একটি ফাংশন যা অ্যারে a[]-কে সিলেকশন সোর্ট ব্যবহার করে সাজায়। selectionSort()-এ দুটি ফর লুপ রয়েছে। বাইরের ফর লুপের প্রতিটি ইটারেশনে, i-এর পরের অবশিষ্ট অ্যারেতে ন্যূনতম উপাদানটি খুঁজে বের করা হয় এবং তারপর বর্তমানে i-এ থাকা উপাদানের সাথে ইন্টারচেঞ্জ করা হয়। এটি অ্যারেটি সাজা না হওয়া পর্যন্ত পুনরাবৃত্তি হয়। এটি নিচে দেখানো হলো:
void selectionSort(int a[], int n) {
int i, j, min, temp;
for (i = 0; i < n - 1; i++) {
min = i;
for (j = i + 1; j < n; j++)
if (a[j] < a[min])
min = j;
temp = a[i];
a[i] = a[min];
a[min] = temp;
}
}
main() ফাংশনে, অ্যারে a[] সংজ্ঞায়িত করা হয়েছে। তারপর selectionSort() ফাংশনটি অ্যারে a[] এবং এর আকার n দিয়ে কল করা হয়েছে। অবশেষে, সাজানো অ্যারেটি প্রদর্শন করা হয়েছে। এটি নিচে দেখানো হলো:
int main() {
int a[] = { 22, 91, 35, 78, 10, 8, 75, 99, 1, 67 };
int n = sizeof(a) / sizeof(a[0]);
int i;
cout << "Given array is:" << endl;
for (i = 0; i < n; i++)
cout << a[i] << " ";
cout << endl;
selectionSort(a, n);
cout << "\nSorted array is: \n";
for (i = 0; i < n; i++)
cout << a[i] << " ";
return 0;
}