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

C++-এ অ্যারে রি-অ্যারেঞ্জ করুন যাতে প্রতিটি আড ইনডেক্সের এলিমেন্ট পূর্বের ইভেন ইনডেক্সের চেয়ে বড় হয়


একটি ধনাত্মক পূর্ণসংখ্যার অ্যারে দেওয়া থাকলে, সেটিকে রি-অ্যারেঞ্জ করতে হবে যাতে সব আড ইনডেক্সের এলিমেন্ট उससे আগের ইভেন ইনডেক্সের চেয়ে বড় হয়।

উদাহরণ

ইনপুট − arr[] = {2,1,5,4,3,7,8}

আউটপুট − 1 4 2 5 3 8 7

ব্যাখ্যা − স্ব্যাপ সিকোয়েন্স: (0,1), (2,3), (6,5), (2,1) → ফলাফল 1 4 2 5 3 8 7।

ইনপুট − arr[] = {3,2,6,9}

আউটপুট − 2 3 6 9

ব্যাখ্যা − শুধু (0,1) স্ব্যাপ।

প্রোগ্রামে ব্যবহৃত পদ্ধতি

  • ptr = size-1।

  • for i=0; i: যদি arr[i] > arr[i+1] হয়, swap(arr[i], arr[i+1])।

  • যদি সাইজ বিজোড় হয় (size & 1), for i=ptr; i>0; i-=2: যদি arr[i] > arr[i-1] হয়, swap(arr[i], arr[i-1])।

উদাহরণ কোড

#include <iostream>
using namespace std;

void Rearrangement(int arr[], int size){
    int ptr = size - 1;
    for(int i = 0; i < ptr; i = i+2){
        if(arr[i] > arr[i+1]){
            swap(arr[i], arr[i+1]);
        }
    }
    if(size & 1){
        for(int i = ptr; i > 0; i = i-2){
            if(arr[i] > arr[i-1]){
                swap(arr[i], arr[i-1]);
            }
        }
    }
}

int main(){
    int arr[] = {2, 1, 5, 4, 3, 7, 8};
    int size = sizeof(arr) / sizeof(arr[0]);
    cout << "Array before Arrangement: ";
    for (int i = 0; i < size; i++) cout << arr[i] << " ";
    Rearrangement(arr, size);
    cout << "\nRearrangement of an array such that every odd indexed element is greater than it previous is: ";
    for(int i = 0; i < size; i++) cout << arr[i] << " ";
    return 0;
}

আউটপুট

উপরের কোড রান করলে নিচের আউটপুট পাওয়া যাবে:

Array before Arrangement: 2 1 5 4 3 7 8 Rearrangement of an array such that every odd indexed element is greater than it previous is: 1 4 2 5 3 8 7
  1. C++-এ ডিরেঞ্জমেন্ট (Derangement) গণনা

  2. C++ প্রোগ্রাম: অ্যারে উপাদান যোগ করে সবগুলোকে k-এর চেয়ে বড় বা সমান করা

  3. C++ প্রোগ্রাম: 'k' বের করা যাতে অ্যারে সব উপাদানের সাথে মডুলাস সমান

  4. C++-এ অ্যারে এলিমেন্ট যোগ করা যতক্ষণ না সব এলিমেন্ট k-এর চেয়ে বড় বা সমান হয়