কম্পিউটার

একটি অ্যারে পুনরায় সাজান যাতে C++ এ 'arr[i]' 'j' হলে 'arr[j]' 'i' হয়ে যায়


আমাদেরকে একটি ধনাত্মক পূর্ণসংখ্যা টাইপ অ্যারে দেওয়া হয়েছে, ধরা যাক, যে কোনও প্রদত্ত আকারের 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

  1. ন্যূনতম x খুঁজুন যেমন (x % k) * (x / k) ==n C++ এ

  2. একটি সাজানো অ্যারেতে সমস্ত ট্রিপলেট খুঁজুন যা C++ এ জ্যামিতিক অগ্রগতি গঠন করে

  3. একটি অ্যারেতে সমস্ত জোড়া (a, b) খুঁজুন যেমন একটি % b =k C++ এ

  4. C++ এ অ্যারে ক্ষয় কি?