এই সেকশনে আমরা দেখব C++-এ সর্টিং অ্যালগরিদম কীভাবে পারফর্ম করতে হয়। একটি সর্টেড অ্যারে হলো এমন একটি অ্যারে যাতে প্রতিটি এলিমেন্ট কোনো ক্রমে (নিউমেরিক্যাল, অ্যালফাবেটিক্যাল ইত্যাদি) সর্টেড থাকে। নিউমেরিক্যাল অ্যারে সর্ট করার জন্য অনেক অ্যালগরিদম আছে যেমন বাবল সর্ট, ইনসার্শন সর্ট, সিলেকশন সর্ট, মার্জ সর্ট, কুইক সর্ট, হিপ সর্ট ইত্যাদি। সিলেকশন সর্ট ব্যবহার করে অ্যারে সর্ট করার বিস্তারিত নিচে দেওয়া হলো।
সিলেকশন সর্ট হলো একটি সর্টিং মেথড যা একটি সর্টেড অ্যারে তৈরি করে। এটি বারবার অ্যারেতে সবচেয়ে ছোট এলিমেন্ট খুঁজে বের করে এবং সেটিকে আনসর্টেড পার্টের শুরুতে থাকা এলিমেন্টের সাথে বদলায়।
সিলেকশন সর্ট ব্যবহার করে সর্টেড অ্যারে ইমপ্লিমেন্ট করার একটি প্রোগ্রাম নিচে দেওয়া হলো।
উদাহরণ
#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 << "দেওয়া অ্যারেটি:" << endl; for (i = 0; i < n; i++) cout << a[i] << " "; cout << endl; selectionSort(a, n); printf("\nসর্টেড অ্যারেটি: \n"); for (i = 0; i < n; i++) cout << a[i] << " "; return 0; }আউটপুট
দেওয়া অ্যারেটি: 22 91 35 78 10 8 75 99 1 67 সর্টেড অ্যারেটি: 1 8 10 22 35 67 75 78 91 99
উপরোক্ত প্রোগ্রামে, selectionSort() একটি ফাংশন যা a[] অ্যারেকে সিলেকশন সর্ট দিয়ে সর্ট করে। selectionSort()-এ দুটি for লুপ রয়েছে। আউটার for লুপের প্রতিটি ইটারেশনে 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 << "দেওয়া অ্যারেটি:" << endl; for (i = 0; i < n; i++) cout << a[i] << " "; cout << endl; selectionSort(a, n); printf("\nসর্টেড অ্যারেটি: \n"); for (i = 0; i < n; i++) cout << a[i] << " "; return 0; }