নির্বাচন বাছাই হল একটি অ্যাসাল্টিং অ্যালগরিদম যা একটি অ্যারে থেকে ক্ষুদ্রতম সংখ্যা খুঁজে বের করতে কাজ করে এবং তারপর এটিকে প্রথম অবস্থানে রাখে। পরবর্তী অ্যারে যেটি অতিক্রম করতে হবে সেটি সূচী থেকে শুরু হবে, অবস্থানের পাশে, যেখানে সবচেয়ে ছোট সংখ্যাটি স্থাপন করা হয়েছে।
নির্বাচন সাজানোর পদ্ধতি
-
উপাদানগুলির তালিকার মধ্যে প্রথম ক্ষুদ্রতম উপাদানটি নির্বাচন করুন এবং এটিকে প্রথম অবস্থানে রাখুন।
-
সমস্ত উপাদানগুলি সাজানো না হওয়া পর্যন্ত তালিকার অবশিষ্ট উপাদানগুলির জন্য একই পুনরাবৃত্তি করুন৷
নিম্নলিখিত তালিকাটি বিবেচনা করুন -
প্রথম পাস
Sm = a[0] = 30 Sm
a[1]
a[2]
a[3]
a[4]
a[2]
a[3]
a[4]
a[3]
a[4]
a[4] <$\square$ $\square$ sm 50 <40 (F) $\square$ 40 $\square$ বিনিময় a[3] sm মান সহ
বাছাই বাছাই করার জন্য নীচে দেওয়া পদ্ধতিটি পড়ুন৷
নির্বাচন বাছাই কৌশল -
যখন উপরের প্রোগ্রামটি কার্যকর করা হয়, তখন এটি নিম্নলিখিত ফলাফল তৈরি করে -10 50 40 30 20
দ্বিতীয় পাস
Sm = a[1] = 50 sm
10 20 40 30 50
তৃতীয় পাস
Sm = a[2] = 40 Sm
চতুর্থ পাস
Sm = a[3] = 40 Sm
প্রক্রিয়া
for (i=0; i<n-1; i++){
sm=i;
for (j=i+1; j<n; j++){
if (a[j] < a[sm])
sm=j;
}
t=a[i];
a[i] = a[sm];
a[sm] = t;
}
}
উদাহরণ
#include<stdio.h>
int main(){
int a[50], i,j,n,t,sm;
printf("enter the No: of elements in the list:\n");
scanf("%d", &n);
printf("enter the elements:\n");
for(i=0; i<n; i++){
scanf ("%d", &a[i]);
}
for (i=0; i<n-1; i++){
sm=i;
for (j=i+1; j<n; j++){
if (a[j] < a[sm]){
sm=j;
}
}
t=a[i];
a[i]=a[sm];
a[sm]=t;
}
printf ("after selection sorting the elements are:\n");
for (i=0; i<n; i++)
printf("%d\t", a[i]);
return 0;
}
আউটপুট
enter the No: of elements in the list:
4
enter the elements:
45
12
37
68
after selection sorting the elements are:
12 37 45 68