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

C++-এ ককটেইল সর্ট (Cocktail Sort)


ককটেইল সর্ট বাবল সর্টের আরেকটি বৈরিয়েশন। বাবল সর্ট টেকনিকলে, এটি সবসময় বাম থেকে ডানে সার্চ করে, এবং সবচেয়ে বড় এলিমেন্ট শেষে পায়, দ্বিতীয় ফেজে দ্বিতীয় সবচেয়ে বড় এলিমেন্ট দ্বিতীয় শেষ পজিশনে পায়। এই সর্টিং টেকনিক ব andòর দিকেই বাক্যপathi করে। আইডিয়া বুঝতে অ্যালগরিদম দেখি।

অ্যালগরিদম

cocktail(array, n)

Begin
    flag := true
    start := 0, end := n-1
    while flag is set, do
        flag := false
        for i in range start to end-1, do
            if arr[i] > arr[i+1], then
                exchange arr[i] and arr[i+1]
                flag := true
            end if
        done
        if flag is not set, then
            break
        end if
        flag := false
        end := end - 1
        for i in range end-1 down to start, do
            if arr[i] > arr[i+1], then
                exchange arr[i] and arr[i+1]
                flag := true
            end if
        done
        start := start + 1
    done
End

উদাহরণ

#include<iostream>
using namespace std;
void cocktailSort(int arr[], int n){
    bool flag = true;
    int start = 0, end = n-1;
    while(flag){
        flag = false;
        for(int i = start; i < end; i++){ // বাম থেকে ডানে স্ক্যান বাবল সর্টের মতো
            if(arr[i] > arr[i+1]){
                swap(arr[i], arr[i+1]);
                flag = true;
            }
        }
        if(!flag){ // যদি কিছুই পরিবর্তন না হয় তাহলে লুপ ব্রেক
            break;
        }
        flag = false;
        end--; // এন্ড পয়েন্টার কমানো
        for(int i = end - 1; i >= start; i--){ // ডান থেকে বামে স্ক্যান
            if(arr[i] > arr[i+1]){
                swap(arr[i], arr[i+1]);
                flag = true;
            }
        }
        start++;
    }
}
main() {
    int data[] = {54, 74, 98, 154, 98, 32, 20, 13, 35, 40};
    int n = sizeof(data)/sizeof(data[0]);
    cout << "Sorted Sequence ";
    cocktailSort(data, n);
    for(int i = 0; i < n; i++){
        cout << data[i] << " ";
    }
}

আউটপুট

Sorted Sequence 13 20 32 35 40 54 74 98 98 154

  1. বাইসেকশন মেথড (Bisection Method) C++ প্রোগ্রাম

  2. C++-এ পিরামিডের ভলিউম বের করার প্রোগ্রাম

  3. C++-এ কুইকসর্ট (QuickSort) প্রোগ্রাম

  4. ককটেইল সর্টের পাইথন প্রোগ্রাম