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