কম্পিউটার

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


বাছাই হল উপাদানগুলিকে আরোহী (বা) অবরোহ ক্রমে সাজানোর প্রক্রিয়া।

বাছাইয়ের প্রকারগুলি

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

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

সর্ট মার্জ করুন

মার্জ সর্ট একটি বিভক্ত এবং জয়ী পদ্ধতি। এটি একটি অ্যারেকে দুই অর্ধে ভাগ করে, পুনরাবৃত্তিমূলকভাবে জয় করে এবং একত্রিত করে।

আসুন একটি উদাহরণ বিবেচনা করি যা নীচে দেওয়া হল -

একটি সাজানো না করা অ্যারে নিন এবং অ্যারে সাজানোর জন্য মার্জ সাজানোর কৌশল প্রয়োগ করুন।

38, 27, 43, 3, 9, 82, 10

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

এখন, নিচে দেখানো −

অনুসারে সাজানোর মাধ্যমে একটি অ্যারে একত্রিত করুন

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

উদাহরণ

মার্জ সর্ট টেকনিক −

ব্যবহার করে উপাদানগুলিকে সাজানোর জন্য C প্রোগ্রামটি নিচে দেওয়া হল
#include <stdio.h>
#define max 10
int a[11] = { 10, 14, 19, 26, 27, 31, 33, 35, 42, 44, 0 };
int b[10];
void merging(int low, int mid, int high) {
   int l1, l2, i;
   for(l1 = low, l2 = mid + 1, i = low; l1 <= mid && l2 <= high; i++) {
      if(a[l1] <= a[l2])
         b[i] = a[l1++];
      else
         b[i] = a[l2++];
   }
   while(l1 <= mid)
      b[i++] = a[l1++];
   while(l2 <= high)
      b[i++] = a[l2++];
   for(i = low; i <= high; i++)
      a[i] = b[i];
   }
   void sort(int low, int high) {
      int mid;
      if(low < high) {
         mid = (low + high) / 2;
         sort(low, mid);
         sort(mid+1, high);
         merging(low, mid, high);
      } else {
      return;
   }
}
int main() {
   int i;
   printf("List before sorting\n");
   for(i = 0; i <= max; i++)
   printf("%d ", a[i]);
   sort(0, max);
   printf("\nList after sorting\n");
   for(i = 0; i <= max; i++)
   printf("%d ", a[i]);
}

আউটপুট

যখন উপরের প্রোগ্রামটি কার্যকর করা হয়, তখন এটি নিম্নলিখিত আউটপুট তৈরি করে −

List before sorting
10 14 19 26 27 31 33 35 42 44 0
List after sorting
0 10 14 19 26 27 31 33 35 42 44

  1. সি ভাষায় বাছাইয়ের পদ্ধতি ব্যাখ্যা কর

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

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

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