এই বিভাগে আমরা দেখব কিভাবে C++ এ সর্টিং অ্যালগরিদম করতে হয়। একটি সাজানো অ্যারে isan অ্যারে যেখানে প্রতিটি উপাদান কিছু ক্রমে সাজানো হয় যেমন সংখ্যাসূচক, বর্ণানুক্রমিক ইত্যাদি। একটি সংখ্যাসূচক অ্যারে সাজানোর জন্য অনেক অ্যালগরিদম আছে যেমন বুদবুদ সাজানো, সন্নিবেশ সাজানো, নির্বাচন সাজানো, মার্জ সাজানো, দ্রুত সাজানো, হিপ সাজানো ইত্যাদি। সিলেকশন সর্ট ব্যবহার করে অ্যারে সাজানোর বিষয়ে আরও বিস্তারিত নিচে দেওয়া হল।
নির্বাচন বাছাই একটি বাছাই পদ্ধতি যা একটি সাজানো অ্যারে প্রদান করে। এটি বারবার অ্যারের মধ্যে ক্ষুদ্রতম উপাদান খুঁজে বের করে এবং সাজানো না হওয়া অংশের শুরুতে উপাদানটির সাথে বিনিময় করে।
একটি প্রোগ্রাম যা নির্বাচন সাজানোর ব্যবহার করে একটি সাজানো অ্যারে প্রয়োগ করে নিম্নরূপ দেওয়া হয়৷
উদাহরণ
#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); printf("\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[] অ্যারে সাজায়। SelectSort() এ লুপের জন্য দুটি আছে। লুপের জন্য থিউটারের প্রতিটি পুনরাবৃত্তিতে, 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[] সংজ্ঞায়িত করা হয়। তারপর ফাংশন selectSort() অ্যারে 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); printf("\nSorted array is: \n"); for (i = 0; i < n; i++) cout<< a[i] <<" "; return 0; }