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

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


স্টুগ সার্ট প্রদত্ত ডাটা সর্ট করতে ব্যবহৃত হয়। এটি একটি রিকারসিভ সর্টিং অ্যালগরিদম। স্টুগ সার্ট অ্যারেকে দুটি ওভারল্যাপিং অংশে ভাগ করে, প্রতিটি 2/3 এবং তিন ধাপে সর্ট করে: প্রথমে I, তারপর II এবং আবার I भाग। এই অ্যালগরিদমের বর্জ্য কেস সময় জটিলতা O(n^2.7095)।

অ্যালগরিদম

শুরু
ডাটা ইনপুট নিন।
StoogeSort() ফাংশন কল করুন 'a' ডাটা অ্যারে এবং 'n' মানগুলির সংখ্যার সাথে আর্গুমেন্ট হিসেবে।
রিকারসিভ পদ্ধতিতে সর্টিং বাস্তবায়ন করুন।
অ্যারেকে প্রথম 2/3 উপাদান হিসেবে পার্ট I এবং শেষ 2/3 হিসেবে পার্ট II-এ ভাগ করুন।
তারপর প্রথম, দ্বিতীয় এবং আবার প্রথম পার্টকে StoogeSort()-এ পাঠান।
যদি দৈর্ঘ্য আরও ভাঙা না যায় তবে শুরু এবং শেষে উপাদান বদলান যদি a[end] < a[start] হয়।
main-এ ফেরত যান এবং ফলাফল প্রদর্শন করুন।
শেষ।

উদাহরণ কোড

#include <iostream>
using namespace std;

void StoogeSort(int a[], int start, int end) {
    int temp;
    if (end - start + 1 > 2) {
        temp = (end - start + 1) / 3;
        StoogeSort(a, start, end - temp);
        StoogeSort(a, start + temp, end);
        StoogeSort(a, start, end - temp);
    }
    if (a[end] < a[start]) {
        temp = a[start];
        a[start] = a[end];
        a[end] = temp;
    }
}

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

আউটপুট

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

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

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

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

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