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

C++-এ অ্যারে রি-অ্যারেঞ্জ করুন যাতে ইভেন পজিশনের এলিমেন্টগুলো أود পজিশনের চেয়ে বড় হয়


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

উদাহরণ

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

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

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

আউটপুট − -4 -3 -1 2

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

  • অ্যারে সর্ট করুন।

  • নতুন অ্যারে ptr[size] বানান।

  • first=0, last=size-1।

  • for i=0 to size-1: যদি (i+1)%2==0 (ইভেন পজিশন ১-বেসড), ptr[i] = arr[last--]; অন্যথায় ptr[i] = arr[first++]।

  • ফলাফল প্রিন্ট করুন।

উদাহরণ কোড

#include <bits/stdc++.h>
using namespace std;

void Rearrangement(int* arr, int size){
    int ptr[size];
    int first = 0, last = size - 1;
    for (int i = 0; i < size; i++){
        if((i + 1) % 2 == 0){
            ptr[i] = arr[last--];
        }
        else{
            ptr[i] = arr[first++];
        }
    }
    // Copy back to arr for printing
    for(int i = 0; i < size; i++) arr[i] = ptr[i];
}

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

আউটপুট

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

Array before Arrangement: 2 1 4 3 6 5 8 7 Rearrangement of an array such that even positioned are greater than odd is: 1 2 3 4 5 6 7 8
  1. C++-এ সার্কুলার অ্যারেতে আঁচবিক উপাদান ছাড়া সর্বোচ্চ যোগফল বের করার পদ্ধতি

  2. অ্যারে সম জোড় করার ন্যূনতম রিমুভাল C++-তে

  3. অ্যারেতে a+b+c=d হওয়া সর্বোচ্চ d বের করা (C++)

  4. C++ ব্যবহার করে অ্যারেতে a % b = k সেটি করার সব জোড়া (a, b) বের করা