কম্পিউটার টিউটোরিয়াল

সি ভাষায় সর্টিং টেকনিক ব্যাখ্যা


সমস্যা

সি ভাষায় কী কী সর্টিং টেকনিক আছে? যেকোনো একটি সর্টিং টেকনিক উদাহরণসহ ব্যাখ্যা করুন।

সমাধান

সি ভাষায় পাঁচটি সর্টিং টেকনিক থাকে, যেগুলো হলো −

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

বাবল সর্ট

এটি সবচেয়ে সহজ সর্টিং টেকনিক যাকে এক্সচেঞ্জ সর্ট ও বলা হয়।

প্রক্রিয়া

  • প্রথম এলিমেন্টটি বাকি এলিমেন্টের সাথে তুলনা করুন এবং অর্ডার না থাকলে এক্সচেঞ্জ (সোয়াপ) করুন।

  • লিস্টের সব এলিমেন্ট সর্টেড হওয়া পর্যন্ত এই প্রক্রিয়া পুনরাবৃত্তি করুন।

30 50 40 10 20

নিচের এলিমেন্টগুলো বিবেচনা করুন −

সি ভাষায় সর্টিং টেকনিক ব্যাখ্যা

প্রথম পাস

প্রথম এলিমেন্টকে বাকি एलিমেন্টের সাথে তুলনা করুন।

a[0] > a[1] $\square$ $\square$30 >50 (F) $\square$ $\square$no exchange

a[0] > a[2] $\square$ $\square$ 30 >40 (F) $\square$ $\square$ no exchange

a[0] > a[3] $\square$ $\square$ 30 >10 (T) $\square$ $\square$ exchange

a[0] > a[4] $\square$ $\square$ 10>20 (F) $\square$ $\square$ no exchange

10 50 40 30 20

দ্বিতীয় পাস

দ্বিতীয় এলিমেন্টকে বাকি এলিমেন্টের সাথে তুলনা করুন।

সি ভাষায় সর্টিং টেকনিক ব্যাখ্যা

a[1] > a[2] $\square$ $\square$ 50 >40 (T) $\square$ $\square$ exchange

a[1] > a[3] $\square$ $\square$ 40 >30 (T) $\square$ $\square$ exchange

a[1] > a[4] $\square$ $\square$ 30 >20 (T) $\square$ $\square$ exchange

10 20 50 40 30

তৃতীয় পাস

তৃতীয় এলিমেন্টকে বাকি এলিমেন্টের সাথে তুলনা করুন।

সি ভাষায় সর্টিং টেকনিক ব্যাখ্যা

a[2] > a[3] $\square$ $\square$ 50 >40 (T) $\square$ $\square$ exchange

a[2] > a[4] $\square$ $\square$ 40 >30 (T) $\square$ $\square$ exchange

10 20 30 50 40

চতুর্থ পাস

চতুর্থ এলিমেন্টকে বাকি এলিমেন্টের সাথে তুলনা করুন।

সি ভাষায় সর্টিং টেকনিক ব্যাখ্যা

a[3] > a[4] $\square$ $\square$ 50 >40 (T) $\square$ $\square$ exchange

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. সি ভাষায় পয়েন্টার অ্যাক্সেসিং ধারণা ব্যাখ্যা