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

C++ প্রোগ্রাম: বাবল সর্ট বাস্তবায়ন


বাবল সর্ট (Bubble Sort) একটি কমপেরিজন-ভিত্তিক সোর্টিং অ্যালগরিদম। এই অ্যালগরিদমে সন্নিহিত এলিমেন্টগুলো তুলনা করা হয় এবং সঠিক সিকোয়েন্স बनाने সোয়্যাপ করা হয়। এই অ্যালগরিদম অন্য অ্যালগরিদমের চেয়ে সহজ, কিন্তু এর কিছু ড্রব্যাক ও আছে। বড় ডেটা সেটের জন্য এটি উপযোগী নয়। সোর্টিং টাস্ক সমাধান করতে এতে অনেক সময় লাগে।

বাবল সর্ট টেকনিকের জটিলতা

  • সময় জটিলতা: বেস্ট কেসে O(n), গড় এবং ওasst কেসে O(n²)

  • স্পেস জটিলতা: O(1)

ইনপুট − একটি আনসর্টেড ডেটা লিস্ট: 56 98 78 12 30 51
আউটপুট − সর্টিংয়ের পর অ্যারে: 12 30 51 56 78 98

অ্যালগরিদম

bubbleSort(array, size)

ইনপুট: একটি ডেটা অ্যারে, এবং অ্যারেতে মোট সংখ্যা

আউটপুট: সর্টেড অ্যারে

শুরু
    i := 0 থেকে size-1 পর্যন্ত
        flag := 0
        j := 0 থেকে size-i-1 পর্যন্ত
            যদি array[j] > array[j+1] হয় তবে
                array[j] এবং array[j+1] সোয়্যাপ করুন
                flag := 1
            শেষ
        শেষ
        যদি flag ≠ 1 হয় তবে
            লুপ ব্রেক করুন
        শেষ
    শেষ
শেষ

উদাহরণ কোড

#include <iostream>
using namespace std;

void swapping(int &a, int &b) {
    int temp;
    temp = a;
    a = b;
    b = temp;
}

void display(int *array, int size) {
    for(int i = 0; i < size; i++)
        cout << array[i] << " ";
    cout << endl;
}

void bubbleSort(int *array, int size) {
    for(int i = 0; i < size; i++) {
        int swaps = 0;
        for(int j = 0; j < size-i-1; j++) {
            if(array[j] > array[j+1]) {
                swapping(array[j], array[j+1]);
                swaps = 1;
            }
        }
        if(!swaps)
            break;
    }
}

int main() {
    int n;
    cout << "এলিমেন্টের সংখ্যা দিন: ";
    cin >> n;
    int arr[n];
    cout << "এলিমেন্টগুলো দিন:" << endl;
    for(int i = 0; i < n; i++) {
        cin >> arr[i];
    }
    cout << "সর্টিংয়ের আগে অ্যারে: ";
    display(arr, n);
    bubbleSort(arr, n);
    cout << "সর্টিংয়ের পর অ্যারে: ";
    display(arr, n);
}

আউটপুট

এলিমেন্টের সংখ্যা দিন: 6
এলিমেন্টগুলো দিন:
56 98 78 12 30 51
সর্টিংয়ের আগে অ্যারে: 56 98 78 12 30 51
সর্টিংয়ের পর অ্যারে: 12 30 51 56 78 98
  1. C++ প্রোগ্রাম: হিপ সর্ট বাস্তবায়ন

  2. C++ প্রোগ্রাম: বাকেট সর্ট বাস্তবায়ন

  3. C++ প্রোগ্রাম: র‍্যাডিক্স সর্ট বাস্তবায়ন

  4. দřen complexity constraint সহ কুইক সার্ট বাস্তবায়ন করার C++ প্রোগ্রাম