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

সি ভাষায় সর্টিং (Sorting) কনসেপ্ট এবং দক্ষতা

সর্টিং কেন জরুরি?

সর্টিং হলো এলিমেন্টগুলোকে आरোহী (ascending) অথবা অवरোহী (descending) ক্রমে সাজানোর প্রক্রিয়া। মানুষ যখন দ্রুত খুঁজে বের করার গুরুত্ব বুঝল, তখন সর্টিং কনসেপ্টের জন্ম হল।

  • ডাটাবেসে নির্দিষ্ট রেকর্ড খুঁজতে হলে।
  • রোল নম্বর লিস্টে নাম খুঁজতে হলে।
  • টেলিফোন ডিরেক্টরিতে নম্বর খুঁজতে হলে।
  • বইয়ে নির্দিষ্ট পৃষ্ঠা খুঁজতে হলে।

ডেটা যদি অक्रमবিন্যস্ত থাকে, তাহলে খুঁজে বের করা কঠিন হয়। সর্টিং ডেটাকে ক্রমবদ্ধ করে সার্চিংকে সহজ ও দ্রুত করে দেয়।

সর্টিং দক্ষতা (Sorting Efficiency) বিচার করার মানদণ্ড

কম্পিউটার সায়েন্টিস্টরা সর্টিং সমস্যা সমাধানের জন্য অনেক অ্যালগরিদম উন্নত করেছেন। কোন অ্যালগরিদম ভালো সেটি বিচার করার জন্য দুটি প্রধান মানদণ্ড:

  1. সময় (Time): ডেটা সর্ট করতে কতক্ষণ লাগে।
  2. মেমরি স্পেস (Memory Space): সর্ট করার জন্য অতিরিক্ত কতটুকু মেমরি লাগে।

উদাহরণ প্রোগ্রাম (সিলেকশন সর্ট ব্যবহার করে)

#include <stdio.h>

int main() {
    int a[50], i, j, n, t, sm;

    printf("Enter number of elements: ");
    scanf("%d", &n);

    printf("Enter elements: ");
    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 sorting: ");
    for (i = 0; i < n; i++)
        printf("%d\t", a[i]);

    return 0;
}

আউটপুট

Enter number of elements: 4
Enter elements: 34 12 56 7
After sorting: 7 12 34 56

প্রধান সর্টিং অ্যালগরিদমগুলো

  • বাবল সর্ট (Bubble Sort)
  • সিলেকশন সর্ট (Selection Sort)
  • ইনসারশন সর্ট (Insertion Sort)
  • মার্জ সর্ট (Merge Sort) — O(n log n)
  • কুইক সর্ট (Quick Sort) — O(n log n)
  • হিপ সর্ট (Heap Sort) — O(n log n)

বড় ডেটাসেটের জন্য মার্জ, কুইক বা হিপ সর্ট ব্যবহার করা ভালো।

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

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

  3. সি ভাষায় পয়েন্টার অ্যাক্সেসিং ধারণা ব্যাখ্যা

  4. C#-তে ক্লাস কনসেপ্ট ব্যাখ্যা