একটি পূর্ণসংখ্যার অ্যারে দেওয়া থাকলে (ধনাত্মক ও ঋণাত্মক), সেটিকে সর্ট করে ন্যূনতম এলিমেন্ট অনুযায়ী বিজোড়-জোড় বা জোড়-বিজোড় ক্রমে রি-অ্যারেঞ্জ করতে হবে। fazla এলিমেন্ট থাকলে ০ দিয়ে পূরণ করুন।
উদাহরণ
ইনপুট − arr[] = {1,1,2,2,5,4}
আউটপুট − 1 2 1 2 5 4
ব্যাখ্যা − ন্যূনতম ১ (বিজোড়), তাই বিজোড়-জোড় ক্রম।
ইনপুট − arr[] = {6,3,2,8,10,4}
আউটপুট − 2 3 4 0 6 0
ব্যাখ্যা − ন্যূনতম ২ (জোড়), তাই জোড়-বিজোড় ক্রম। জোড় বেশি থাকায় ০ প্যাডিং।
প্রোগ্রামে ব্যবহৃত পদ্ধতি
অ্যারে সর্ট করুন।
দুটি ভেক্টর
vec_1(জোড়),vec_2(বিজোড়) বানান।checkভেরিয়েবল দিয়ে ট্র্যাক করুন পরবর্তী কে দিতে হবে।হয়ループে
checkঅনুযায়ী ভেক্টর থেকে এলিমেন্ট নিয়ে অ্যারে পূরণ করুন।
উদাহরণ কোড
#include <bits/stdc++.h>
using namespace std;
void Rearrangement(int arr[], int size){
vector vec_1, vec_2;
int temp = 0;
bool check = false;
for(int i = 0; i < size; i++){
if(arr[i] % 2 == 0) vec_1.push_back(arr[i]);
else vec_2.push_back(arr[i]);
}
int i = 0, j = 0;
if(arr[0] % 2 == 0) check = true;
while(temp < size){
if(check == true){
arr[temp++] = vec_1[i++];
check = !check;
}
else{
arr[temp++] = vec_2[j++];
check = !check;
}
}
}
int main(){
int arr[] = {1, 1, 2, 2, 5, 4};
int size = sizeof(arr) / sizeof(int);
sort(arr, arr + size);
cout << "Rearrangement of Odd and Even values in Alternate Fashion in Ascending Order is: ";
Rearrangement(arr, size);
for(int i = 0; i < size; i++){
cout << arr[i] << " ";
}
return 0;
}
আউটপুট
উপরের কোড রান করলে নিচের আউটপুট পাওয়া যাবে:
Rearrangement of Odd and Even values in Alternate Fashion in Ascending Order is: 1 2 1 2 5 4