আমাদেরকে একটি ধনাত্মক পূর্ণসংখ্যা টাইপ অ্যারে দেওয়া হয়েছে, ধরা যাক, যে কোনও প্রদত্ত আকারের arr[] যাতে একটি অ্যারের উপাদানগুলির মান 0-এর চেয়ে বেশি তবে অ্যারের আকারের চেয়ে কম হওয়া উচিত। কাজটি হল অ্যারেকে এমনভাবে সাজানো যাতে arr[j] 'j' হলে arr[j] 'i' হয় এবং চূড়ান্ত ফলাফল প্রিন্ট করে।
আসুন এর জন্য বিভিন্ন ইনপুট আউটপুট পরিস্থিতি দেখি -
ইনপুট − int arr[] ={3, 4, 1, 2, 0}
আউটপু টি − বিন্যাসের পূর্বে বিন্যাস:3 4 1 2 0একটি বিন্যাসের পুনর্বিন্যাস যাতে arr[j] হয়ে যায় i যদি arr[i] j হয়:4 2 3 0 1
ব্যাখ্যা − আমাদেরকে 6 এর আকারের একটি পূর্ণসংখ্যার অ্যারে দেওয়া হয়েছে এবং একটি অ্যারের মানের সমস্ত উপাদান 6-এর কম। এখন, আমরা অ্যারেটিকে পুনর্বিন্যাস করব অর্থাৎ arr[1] is 4, arr[4] =1; arr[2] হল 1, arr[1] =2; arr[3] is2, arr[2] =3; arr[4] হল 0, arr[0] =4। অতএব, চূড়ান্ত অ্যারে হল 4 2 3 0 1।
ইনপু টি৷ − int arr[] ={2, 0, 1, 3}
আউটপুট − বিন্যাসের পূর্বে বিন্যাস:2 0 1 3একটি বিন্যাসের পুনর্বিন্যাস যাতে arr[j] হয়ে যায় i যদি arr[i] j হয়:1 2 0 3
ব্যাখ্যা − আমাদেরকে 6 এর আকারের একটি পূর্ণসংখ্যার অ্যারে দেওয়া হয়েছে এবং একটি অ্যারের মানের সমস্ত উপাদান 6-এর কম। এখন, আমরা অ্যারেটিকে পুনর্বিন্যাস করব অর্থাৎ arr[0] is 2, arr[2] =0; arr[1] হল 0, arr[0] =1; arr[2] is1, arr[1] =2; arr[3] হল 3, arr[3] =3। অতএব, চূড়ান্ত অ্যারে হল 1 2 0 3।
নিচের প্রোগ্রামে ব্যবহৃত পদ্ধতিটি নিম্নরূপ
-
পূর্ণসংখ্যা ধরনের উপাদানগুলির একটি অ্যারে ইনপুট করুন এবং একটি অ্যারের আকার গণনা করুন৷
৷ -
বিন্যাসের আগে অ্যারেটি মুদ্রণ করুন এবং ফাংশনটিকে পুনর্বিন্যাস (আর, আকার)
কল করুন -
ফাংশনের ভিতরে পুনঃবিন্যাস(arr, size)
-
অ্যারে অ্যারের মতো একই আকারের ptr[] হিসাবে পূর্ণসংখ্যার ধরণের মানগুলির একটি অ্যারে তৈরি করুন।
-
স্টার্ট লুপ ফর, i থেকে 0 পর্যন্ত i আকারের চেয়ে কম। লুপের ভিতরে, ptr[arr[i]] কে i.
সেট করুন -
i থেকে 0 পর্যন্ত FOR লুপ শুরু করুন যতক্ষণ না আমি আকারের চেয়ে কম। লুপের ভিতরে, arr[i] কে ptr[i] এ সেট করুন।
-
-
একটি অ্যারের মান পুনর্বিন্যাস করার পরে অ্যারেটি মুদ্রণ করুন।
উদাহরণ
#include <bits/stdc++.h> using namespace std; void Rearrangement(int arr[], int size){ int ptr[size]; for(int i = 0; i < size; i++){ ptr[arr[i]] = i; } for(int i = 0; i < size; i++){ arr[i] = ptr[i]; } } int main(){ //input an array int arr[] = {3, 4, 1, 2, 0}; int size = sizeof(arr) / sizeof(arr[0]); //print the original Array cout<<"Array before Arrangement: "; for (int i = 0; i < size; i++){ cout << arr[i] << " "; } //calling the function to rearrange the array Rearrangement(arr, size); //print the array after rearranging the values cout<<"\nRearrangement of an array such that ‘arr[j]’ becomes ‘i’ if ‘arr[i]’ is ‘j’ is: "; for(int i = 0; i < size; i++){ cout<< arr[i] << " "; } return 0; }
আউটপুট
যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট তৈরি করবে
Array before Arrangement: 3 4 1 2 0 Rearrangement of an array such that ‘arr[j]’ becomes ‘i’ if ‘arr[i]’ is ‘j’ is: 4 2 3 0 1