মডিউল ১৩-৭+১৩-৮ঃ সিলেকশন সর্ট

সিলেকশন সর্ট:

ডেটা স্ট্রাকচারে ডেটা সাজানোর গুরুত্ব অনেক বেশি। বিভিন্ন ধরণের ডেটা স্ট্রাকচার ও তাদের ব্যবহার বিভিন্ন ধরনের অ্যালগরিদমে সহায়তা করে। ডেটা সাজানো বা সর্ট করা হল এমন একটি গুরুত্বপূর্ণ কাজ, যা একটি প্রোগ্রামিং ভাষায় ডেটা প্রক্রিয়াকে সহজ করে তুলে দেয়। সিলেকশন সর্ট হল এমন একটি সর্টিং এলগরিদম, যা সহজ এবং সরল। এই অ্যালগরিদম প্রায় সকল প্রোগ্রামিং ভাষায় ব্যবহার করা হয়, এবং তা সহজেই বুঝা যায়।

সিলেকশন সর্টের কাজকর্ম

সিলেকশন সর্ট এর মূল কাজ হল সব থেকে ছোট (বা বড়) মান নির্বাচন করা এবং তা সবচেয়ে প্রথম (বা শেষ) স্থানে রাখা। এরপর পরের অংশের মধ্যে আবার ছোট (বা বড়) মান নির্বাচন করা এবং তা প্রথম (বা শেষ) স্থানে রাখা। এই পদ্ধতিটি প্রতিটি অংশের জন্য পুনরাবৃত্তি করা হয় যাতে অ্যারেটি সম্পূর্ণ সর্টেড হয়।

প্রক্রিয়া

সিলেকশন সর্ট কাজ করার প্রক্রিয়া সহজ। একটি অ্যারে ব্যবহার করা হয় যাতে তার মধ্যে অংশ সর্ট করা যায়।

  1. প্রথমে অ্যারের সব উপাদান নিয়ে নেওয়া হয়।

  2. তারপর প্রথম উপাদানকে ধরা হয় ছোট মান বলে।

  3. পরের উপাদান ধরা হয় এবং এর সাথে প্রাথমিক উপাদান তুলনা করা হয়। যদি পরের উপাদান প্রাথমিক উপাদানের চেয়ে ছোট হয়, তবে তাকে প্রাথমিক উপাদানের সাথে পরিবর্তন করা হয়।

  4. এই প্রক্রিয়াটি পুনরাবৃত্তি করা হয় প্রতিটি উপাদানের জন্য অ্যারের শেষ অংশে পৌঁছানো পর্যন্ত। প্রতিবার প্রথম উপাদান অংশে সর্টেড থাকবে এবং পরের উপাদান প্রাথমিক উপাদানের সাথে তুলনা করে সর্ট করা হবে।

কোডঃ

#include<stdio.h>
int main()
{
     int n;
    scanf("%d",&n);
    int a[n];
    for(int i=0;i<n;i++)
    {
        scanf("%d",&a[i]);
    }

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

    for(int i=0;i<n;i++)
    {
        printf("%d ",a[i]);
    }
    return 0;
}

Explanaitons:

এই কোডে দুটি সিলেকশন সর্ট সম্পাদন করা হয়েছে:

  1. #include<stdio.h>: এই লাইনে <stdio.h> হেডার ফাইল ইমপোর্ট করা হয়েছে।

  2. int main(): মেইন ফাংশন শুরু ।

  3. {: মেইন ফাংশনের ব্লক শুরু।

  4. int n;: ইনটিজার টাইপের নির্দিষ্ট একটি ভ্যারিয়েবল n ডিক্লেয়ার করা হয়েছে।

  5. scanf("%d",&n);: ব্যবহারকারী থেকে ইনটিজার টাইপের মান ইনপুট নেয়া হয়।

  6. int a[n];: অ্যারে ডিক্লেয়ার করা হয়েছে যার উপাদান সংখ্যা n যেটি ব্যবহারকারী ইনপুট দিয়ে নির্দেশ করে।

  7. for(int i=0;i<n;i++): প্রথম ফর লুপ চালানো হয়, যা প্রতিটি উপাদানের মান ইনপুট নেয়।

  8. {: লুপের ব্লক শুরু।

  9. scanf("%d",&a[i]);: ব্যবহারকারী থেকে প্রতিটি উপাদানের মান ইনপুট নেয়া হয়।

  10. }: লুপের ব্লক শেষ।

    1. for(int i=0;i<n-1;i++): এই লুপের মাধ্যমে সর্টিং করা হয়।

    2. for(int j=i+1;j<n;j++): এই লুপের মাধ্যমে অ্যারের পরের উপাদানগুলির সাথে তুলনা করা হয়।

    3. if(a[i]>a[j]): যদি একটি উপাদান পরের উপাদানের থেকে বড় হয়, তবে তাদের স্থান পরিবর্তন করা হয়।

  11. for(int i=0;i<n;i++): এই লাইনে লুপ চালানো হয়, যেটি সর্ট করা অ্যারের উপাদানগুলি প্রিন্ট করে।

  12. return 0;: প্রোগ্রামের সমাপ্তি।

  13. }: মেইন ফাংশনের ব্লক শেষ।

Last updated