কম্পিউটার

একটি বিন্যাস পুনরায় সাজান যেমন arr[i] =i C++ এ


আমাদেরকে একটি ধনাত্মক পূর্ণসংখ্যা টাইপ অ্যারে দেওয়া হয়েছে, ধরা যাক, যে কোনও প্রদত্ত আকারের arr[] যাতে একটি অ্যারের উপাদানগুলির মান 0-এর চেয়ে বেশি তবে অ্যারের আকারের চেয়ে কম হওয়া উচিত। কাজটি হল একটি অ্যারেকে এমনভাবে সাজানো যাতে arr[i] 'i' হয়, যদি 'i' একটি অ্যারেতে থাকে অন্যথায় এটি arr[i] উপাদানটিকে মান -1 সহ সেট করবে এবং চূড়ান্ত প্রিন্ট করবে। ফলাফল।

আসুন এর জন্য বিভিন্ন ইনপুট আউটপুট পরিস্থিতি দেখি -

ইনপুট − int arr[] ={0, 8, 1, 5, 4, 3, 2, 9 }

আউটপুট − একটি বিন্যাসের পুনর্বিন্যাস যেমন arr[i] =i হল:0 1 2 3 4 5 -1 -1

ব্যাখ্যা − আমাদেরকে 8 আকারের একটি পূর্ণসংখ্যার অ্যারে দেওয়া হয়েছে এবং একটি অ্যারের মানের সমস্ত উপাদান 8-এর কম।

arr[0] = 0(present in an array)
arr[1] = 1(present in an array)
arr[2] = 2(present in an array)
arr[3] = 3(present in an array)
arr[4] = 4(present in an array)
arr[5] = 5(present in an array)
arr[6] = -1(NOT present in an array)
arr[7] = -1(NOT present in an array)

ইনপুট − int arr[] ={1, 2, 6, 9, 10}

আউটপুট − একটি বিন্যাসের পুনর্বিন্যাস যেমন arr[i] =i হল:-1 1 2 -1 -1

ব্যাখ্যা − আমাদেরকে সাইজ 5 এর একটি পূর্ণসংখ্যার অ্যারে দেওয়া হয়েছে এবং 5-এর চেয়ে কম অ্যারের মানের সমস্ত উপাদান দেওয়া হয়েছে৷ এখন, আমরা অ্যারেটিকে পুনর্বিন্যাস করব অর্থাৎ

arr[0] = -1(NOT present in an array)
arr[1] = 1(present in an array)
arr[2] = 2(present in an array)
arr[3] = -1(NOT present in an array)
arr[4] = -1(NOT present in an array)

নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি

  • পূর্ণসংখ্যা ধরনের উপাদানগুলির একটি অ্যারে ইনপুট করুন এবং একটি অ্যারের আকার গণনা করুন৷

  • বিন্যাস করার আগে অ্যারেটি প্রিন্ট করুন এবং ফাংশনটিকে পুনর্বিন্যাস (arr, size)

    কল করুন
  • পুনঃবিন্যাস ফাংশনের ভিতরে(arr, size)

    • একটি পূর্ণসংখ্যা টাইপ ভেরিয়েবল ঘোষণা করা যাক, ptr

    • i থেকে 0 পর্যন্ত FOR লুপ শুরু করুন যতক্ষণ না আমি আকারের চেয়ে কম। লুপের ভিতরে, j থেকে 0 থেকে j আকারের কম পর্যন্ত FOR আর একটি লুপ শুরু করুন৷

    • লুপের ভিতরে, IF arr[j] =i চেক করুন তারপর ptr =arr[j], arr[j] to arr[i], arr[i] ptr এবং break সেট করুন।

    • i থেকে i আকারের চেয়ে কম না হওয়া পর্যন্ত FOR লুপ শুরু করুন। লুপের ভিতরে, IF arr[i]!=i চেক করুন তারপর arr[i]-এ সেট করুন।

  • একটি অ্যারের মান পুনর্বিন্যাস করার পরে অ্যারেটি মুদ্রণ করুন।

উদাহরণ

#include <iostream>
using namespace std;
void Rearranging(int arr[], int size){
   int ptr;
   for(int i = 0; i < size; i++){
      for(int j = 0; j < size; j++){
         if(arr[j] == i){
            ptr = arr[j];
            arr[j] = arr[i];
            arr[i] = ptr;
            break;
         }
      }
   }
   for(int i = 0; i < size; i++){
      if(arr[i] != i){
         arr[i] = -1;
      }
   }
}
int main(){
   int arr[] = {0, 8, 1, 5, 4, 3, 2, 9 };
   int size = sizeof(arr) / sizeof(arr[0]);
   //calling the function to rearrange an array such that arr[i] = i
   Rearranging(arr, size);
   //Printing the array
   cout<<"Rearrangement of an array such that arr[i] = i is: ";
   for(int i = 0; i < size; i++){
      cout << arr[i] << " ";
   }
}

আউটপুট

যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট তৈরি করবে

Rearrangement of an array such that arr[i] = i is: 0 1 2 3 4 5 -1 -1

  1. অ্যারেতে সবচেয়ে বড় ডি খুঁজুন যেমন সি++ এ a + b + c =d

  2. একটি অ্যারেতে মৌলিক সংখ্যা K খুঁজুন যেমন (A[i] % K) C++-এ সর্বাধিক

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

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