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