কম্পিউটার

সি ভাষায় সাজানোর কৌশল ব্যাখ্যা কর


সমস্যা

সি ল্যাঙ্গুয়েজে বিভিন্ন সাজানোর কৌশল কি কি? উদাহরণ সহ যেকোনো একটি সাজানোর কৌশল ব্যাখ্যা করুন।

সমাধান

সি ভাষা পাঁচটি সাজানোর কৌশল প্রদান করে, যা নিম্নরূপ -

  • বাবল বাছাই (বা) এক্সচেঞ্জ সর্ট।
  • নির্বাচন বাছাই।
  • সন্নিবেশ বাছাই (বা) লিনিয়ার সর্ট।
  • দ্রুত বাছাই (বা) পার্টিশন বিনিময় বাছাই।
  • সর্ট মার্জ (বা) এক্সটার্নাল সর্ট।

বুদবুদ সাজান

এটি হল সবচেয়ে সহজ বাছাই কৌশল যাকে এক্সচেঞ্জ সর্টও বলা হয়।

প্রক্রিয়া

  • তালিকার অবশিষ্ট উপাদানগুলির সাথে প্রথম উপাদানটির তুলনা করুন এবং যদি সেগুলি ক্রমানুসারে না থাকে তবে তাদের বিনিময় (অদলবদল) করুন৷

  • সমস্ত উপাদানগুলি সাজানো না হওয়া পর্যন্ত তালিকার অন্যান্য উপাদানগুলির জন্য একই পুনরাবৃত্তি করুন৷

30 50 40 10 20

নীচে দেওয়া উপাদানগুলি বিবেচনা করুন -

সি ভাষায় সাজানোর কৌশল ব্যাখ্যা কর

প্রথম পাস

বাকি উপাদানের সাথে প্রথম উপাদানের তুলনা করুন।

a[0]> a[1] $\square$ $\square$30>50 (F) $\square$ $\square$ কোন বিনিময় নেই

a[0]> a[2] $\square$ $\square$ 30>40 (F) $\square$ $\square$ কোন বিনিময় নেই

a[0]> a[3] $\square$ $\square$ 30>10 (T) $\square$ $\square$ বিনিময়

a[0]> a[4] $\square$ $\square$ 10>20 (F) $\square$ $\square$ কোন বিনিময় নেই

10 50 40 30 20

দ্বিতীয় পাস

অবশিষ্ট উপাদানের সাথে দ্বিতীয় উপাদানের তুলনা করুন।

সি ভাষায় সাজানোর কৌশল ব্যাখ্যা কর

a[1]> a[2] $\square$ $\square$ 50>40 (T) $\square$ $\square$ বিনিময়

a[1]> a[3] $\square$ $\square$ 40>30 (T) $\square$ $\square$ বিনিময়

a[1]> a[4] $\square$ $\square$ 30>20 (T) $\square$ $\square$ বিনিময়

10 20 50 40 30

তৃতীয় পাস

অবশিষ্ট উপাদানের সাথে তৃতীয় উপাদানের তুলনা করুন।

সি ভাষায় সাজানোর কৌশল ব্যাখ্যা কর

a[2]> a[3] $\square$ $\square$ 50>40 (T) $\square$ $\square$ বিনিময়

a[2]> a[4] $\square$ $\square$ 40>30 (T) $\square$ $\square$ বিনিময়

10 20 30 50 40

চতুর্থ পাস

বাকি উপাদানের সাথে চতুর্থ উপাদানের তুলনা করুন।

সি ভাষায় সাজানোর কৌশল ব্যাখ্যা কর

a[3]> a[4] $\square$ $\square$ 50>40 (T) $\square$ $\square$ বিনিময়

10 20 30 40 50

প্রক্রিয়া

নীচে দেওয়া হিসাবে বুদ্বুদ সাজানোর পদ্ধতি পড়ুন -

for (i=0; i<n-1; i++){
   for (j=i+1; j<n; j++){
      if (a[i] > a[j]){
         t=a[i];
         a[i] = a[j];
         a[j] = t;
      }
   }
}

উদাহরণ

বুদবুদ সাজানোর কৌশল -

এর জন্য সি প্রোগ্রামটি নিচে দেওয়া হল
#include<stdio.h>
int main(){
   int a[50], i,j,n,t;
   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]);
   }
   printf("Before bubble sorting the elements are:\n");
   for(i=0; i<n; i++)
      printf("%d \t\n", a[i]);
   for (i=0; i<n-1; i++){
      for (j=i+1; j<n; j++){
         if (a[i] > a[j]){
            t = a[i];
            a[i] = a[j];
            a[j] = t;
         }
      }
   }
   printf ("after bubble 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:
5
enter the elements:
12 11 45 26 67
Before bubble sorting the elements are:
12
11
45
26
67
after bubble sorting the elements are:
11 12 26 45 67

  1. C ভাষায় ক্যারেক্টার অপারেশন ব্যাখ্যা কর

  2. সি ভাষায় সাজানোর কৌশল ব্যাখ্যা কর

  3. সি ভাষায় ইউনিয়নকে পয়েন্টার ব্যাখ্যা কর

  4. সি ল্যাঙ্গুয়েজে পয়েন্টার এক্সেসিংয়ের ধারণাটি ব্যাখ্যা কর