আমাদেরকে একটি পূর্ণসংখ্যা অ্যারে দেওয়া হয়েছে যাতে বিজোড় এবং জোড় পূর্ণসংখ্যার মান রয়েছে। কাজটি হল একটি বিন্যাসকে এমনভাবে সাজানো যাতে arr[i] arr[j] এর থেকে বড় বা সমান হওয়া উচিত এই শর্তের উপর ভিত্তি করে যে arr[i] সূচকের মান জোড় হওয়া উচিত এবং যদি arr[i] এ মান হওয়া উচিত। বিজোড় তারপর arr[i] arr[j] এর সমান হতে হবে।
আসুন এর জন্য বিভিন্ন ইনপুট আউটপুট পরিস্থিতি দেখি -
ইনপুট − int arr[] ={5, 9, 10, 12, 32, 35, 67, 89}
আউটপুট − উপাদান পুনর্বিন্যাস করার পরে অ্যারে হল:12 32 10 35 9 67 5 89
ব্যাখ্যা − আমাদেরকে বিজোড় এবং জোড় পূর্ণসংখ্যা সহ একটি অ্যারে দেওয়া হয়েছে। এখন, আমরা arr[j] অবস্থানের বিপরীতে arr[i] অবস্থান থেকে ট্রাভার্স করা শুরু করব এবং যদি arr[i] হয় তাহলেও নিশ্চিত করুন যে arr[i] arr[j] এবং IF arr[i] থেকে বড় হওয়া উচিত। বিজোড় তারপর নিশ্চিত করুন যে arr[i] যেন arr[j] এর সমান হয়।
ইনপুট − int arr[] ={4, 5, 1, 2, 9, 10}
আউটপুট − উপাদান পুনর্বিন্যাস করার পরে অ্যারে হল:4 5 2 9 1 10
ব্যাখ্যা − আমাদেরকে বিজোড় এবং জোড় পূর্ণসংখ্যা সহ একটি অ্যারে দেওয়া হয়েছে। এখন, আমরা arr[j] অবস্থানের বিপরীতে arr[i] অবস্থান থেকে ট্রাভার্স করা শুরু করব এবং যদি arr[i] হয় তাহলেও নিশ্চিত করুন যে arr[i] arr[j] এবং IF arr[i] থেকে বড় হওয়া উচিত। বিজোড় তারপর নিশ্চিত করুন যে arr[i] যেন arr[j] এর সমান হয়।
নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি
-
পূর্ণসংখ্যা ধরনের একটি অ্যারে ঘোষণা. আকার =sizeof(arr) / sizeof(arr[0]) হিসাবে একটি অ্যারের আকার গণনা করুন।
-
একটি ফাংশনকে array_rearrange(arr, size) হিসাবে কল করুন এবং প্যারামিটার হিসাবে ডেটা পাস করুন।
-
একটি ভেরিয়েবলকে জোড় হিসাবে ঘোষণা করুন এবং এটিকে ইভেন =সাইজ / 2 এ সেট করুন এবং অন্য একটি ভেরিয়েবলকে বিজোড় হিসাবে ঘোষণা করুন এবং এটিকে আকার - জোড়ে সেট করুন৷
-
একটি ভেরিয়েবলকে টেম্প হিসাবে ঘোষণা করুন এবং এটিকে বিজোড় এ সেট করুন - 1। arr_1[] এর আকার সহ একটি অ্যারে_2[] ঘোষণা করুন।
-
i থেকে 0 এবং i আকারের চেয়ে কম জন্য লুপ শুরু করুন। লুপের ভিতরে, এটিকে সেট করুন arr_2[i] to arr[i]।
-
একটি ফাংশনকে sort(arr_2, arr_2 + size) হিসাবে কল করুন।
-
i থেকে 0 পর্যন্ত FOR লুপ শুরু করুন যতক্ষণ না আমি আকারের চেয়ে কম। লুপের ভিতরে, arr[i] কে arr_2[temp] এ সেট করুন এবং পরিবর্তনশীল টেম্পকে 1 দ্বারা কমিয়ে দিন।
-
বিজোড় তাপমাত্রা সেট করুন. i থেকে 1 পর্যন্ত FOR লুপ শুরু করুন যতক্ষণ না আমি আকারের চেয়ে কম। লুপের ভিতরে, arr[i] কে arr_2[temp] এ সেট করুন এবং তাপমাত্রা 1 দ্বারা বৃদ্ধি করুন।
-
i থেকে 0 পর্যন্ত FOR লুপ শুরু করুন যতক্ষণ না আমি আকারের চেয়ে কম। arr[i] প্রিন্ট করুন।
-
উদাহরণ
#include <bits/stdc++.h> using namespace std; void array_rearrange(int arr[], int size){ int even = size / 2; int odd = size - even; int temp = odd - 1; int arr_2[size]; for(int i = 0; i < size; i++){ arr_2[i] = arr[i]; } sort(arr_2, arr_2 + size); for(int i = 0; i < size; i += 2){ arr[i] = arr_2[temp]; temp--; } temp = odd; for(int i = 1; i < size; i += 2){ arr[i] = arr_2[temp]; temp++; } cout<<"Array after rearranging elements are: "; for (int i = 0; i < size; i++){ cout << arr[i] << " "; } } int main(){ int arr[] = {5, 9, 10, 12, 32, 35, 67, 89}; int size = sizeof(arr) / sizeof(arr[0]); array_rearrange(arr, size); return 0; }
আউটপুট
যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট তৈরি করবে
Array after rearranging elements are: 12 32 10 35 9 67 5 89