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

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


শেকার সার্ট প্রদত্ত ডাটা সর্ট করতে ব্যবহৃত হয়। বাবল সার্টের বিপরীতে, শেকার সার্ট অ্যারেকে উভয় দিকেই অর্ডার করে। এই অ্যালগরিদমের বর্জ্য জটিলতা O(n²)।

অ্যালগরিদম

শুরু
   ShakerSort() ফাংশনে 'arr' ডাটা অ্যারে এবং 'n' মানগুলির সংখ্যা আর্গুমেন্ট হিসেবে থাকে।
   // নেস্টেড ফর লুপ ব্যবহার করে সর্টিং অ্যালগরিদম বাস্তবায়ন করুন।
   প্যারেন্ট লুপ 'i'-তে 0 থেকে n-1 পর্যন্ত চলবে এবং এর ভেতরে দুটি লুপ থাকবে।
   প্রথম লুপ 'j'-তে i+1 থেকে n-1 পর্যন্ত চলবে এবং swap() ব্যবহার করবে যদি a[j] < a[j-1] হয়।
   n কমান।
   দ্বিতীয় লুপ 'k'-তে m-1 থেকে i+1 পর্যন্ত চলবে এবং swap() ব্যবহার করবে যদি a[k] < a[k-1] হয়।
   i বাড়ান।
শেষ

উদাহরণ কোড

#include <iostream>
using namespace std;

void swap(int *a, int *b) {
    int temp;
    temp = *a;
    *a = *b;
    *b = temp;
}

void ShakerSort(int a[], int m) {
    int i, j, k;
    for (i = 0; i < m;) {
        for (j = i + 1; j < m; j++) {
            if (a[j] < a[j - 1])
                swap(&a[j], &a[j - 1]);
        }
        m--;
        for (k = m - 1; k > i; k--) {
            if (a[k] < a[k - 1])
                swap(&a[k], &a[k - 1]);
        }
        i++;
    }
}

int main() {
    int n, i;
    cout << "\nসর্ট করার ডাটা উপাদানের সংখ্যা লিখুন: ";
    cin >> n;
    int a[n];
    for (i = 0; i < n; i++) {
        cout << "এলিমেন্ট " << i + 1 << ": ";
        cin >> a[i];
    }
    ShakerSort(a, n);
    cout << "\nসর্টেড ডাটা ";
    for (i = 0; i < n; i++)
        cout << "->" << a[i];
    return 0;
}

আউটপুট

সর্ট করার ডাটা উপাদানের সংখ্যা লিখুন: 4
এলিমেন্ট 1: 3
এলিমেন্ট 2: 1
এলিমেন্ট 3: 7
এলিমেন্ট 4: 6
সর্টেড ডাটা ->1->3->6->7

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

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

  3. ইউনিফর্ম বাইনারি সার্চ انجام देने वाला C++ প্রোগ্রাম

  4. স্টুগ সার্ট বাস্তবায়ন করার C++ প্রোগ্রাম