কম্পিউটার

C++ এ অন্তর্নির্মিত সাজানোর ফাংশন ব্যবহার করে ধনাত্মক এবং ঋণাত্মক সংখ্যাগুলিকে পুনরায় সাজান


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

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

ইনপুট − int arr[] ={4, 2, -1, -1, 6, -3, 0}

আউটপুট − অন্তর্নির্মিত সাজানোর ফাংশন ব্যবহার করে ধনাত্মক এবং ঋণাত্মক সংখ্যার পুনর্বিন্যাস হল:-3 -1 -1 0 2 4 6৷

ব্যাখ্যা − আমাদের ধনাত্মক এবং নেতিবাচক উভয় উপাদান সমন্বিত আকার 7 এর একটি পূর্ণসংখ্যা অ্যারে দেওয়া হয়েছে। এখন, আমরা অ্যারেটিকে এমনভাবে সাজাব যাতে একটি অ্যারের সমস্ত উপাদানগুলি সাজানো হয় অর্থাৎ সমস্ত নেতিবাচক উপাদানগুলি সমস্ত ধনাত্মক উপাদানের আগে উপস্থিত হয় এবং চূড়ান্ত ফলাফল হবে -3 -1 -1 0 2 4 6৷

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

আউটপুট − অন্তর্নির্মিত সাজানোর ফাংশন ব্যবহার করে ধনাত্মক এবং ঋণাত্মক সংখ্যার পুনর্বিন্যাস হল:-10 -9 2 3 4 5 8 10৷

ব্যাখ্যা − আমাদের ধনাত্মক এবং নেতিবাচক উভয় উপাদান সমন্বিত আকার 8 এর একটি পূর্ণসংখ্যা অ্যারে দেওয়া হয়েছে। এখন, আমরা অ্যারেটিকে এমনভাবে সাজাব যাতে একটি অ্যারের সমস্ত উপাদানগুলি সাজানো হয় অর্থাৎ সমস্ত নেতিবাচক উপাদানগুলি সমস্ত ধনাত্মক উপাদানের আগে উপস্থিত হয় এবং চূড়ান্ত ফলাফল হবে -10 -9 2 3 4 5 8 10৷

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

সর্ট() ব্যবহার করা

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

  • পুনঃবিন্যাস (int arr[], int size)

    ফাংশনে ডেটা পাস করুন
  • ফাংশনের ভিতরে, পুনর্বিন্যাস(int arr[], int size)

    • ফাংশনে প্যারামিটার হিসাবে অ্যারের অ্যারে এবং সাইজ পাস করে C++ STL-এর সাজানোর ফাংশনকে কল করুন এবং এটি সাজানো অ্যারে ফিরিয়ে দেবে।

  • ফলাফল প্রিন্ট করুন।

পুনরাবৃত্তি ব্যবহার করা

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

  • একটি অস্থায়ী পরিবর্তনশীল ঘোষণা করুন, ধরা যাক, temp.

  • স্টার্ট লুপ FOR i থেকে i পর্যন্ত একটি অ্যারের আকারের চেয়ে কম। লুপের ভিতরে, arr[i] 0 এর কম কিনা তা পরীক্ষা করুন তারপর তাপমাত্রা 1 দ্বারা বৃদ্ধি করুন।

  • ফাংশনের প্যারামিটার হিসাবে অ্যারে, 0, এবং সাইজ -1 পাস করে পুনর্বিন্যাস(arr, 0, (size - 1)) কল করুন।

  • অ্যারে, টেম্প এবং সাইজ - 1 ফাংশনে পাস করে রোটেট ফাংশনটিকে কল করুন।

  • ফাংশনের ভিতরে পুনর্বিন্যাস(int arr[], int first, int last)

    • চেক করুন যদি প্রথমে শেষের সমান তারপর রিটার্ন।

    • ফাংশন Rearrangement() এবং পাস অ্যারেতে একটি পুনরাবৃত্ত কল করুন, একটি প্যারামিটার হিসাবে প্রথম + 1 এবং শেষ উপাদান৷

    • 0-এর বেশি হলে IF arr[first] চেক করুন তারপর Rotate(arr, (first + 1), last) এবং Rotate(arr, first, last) হিসেবে ফাংশনে কল করুন

  • ফাংশনের ভিতরে ঘোরান(int arr[], int first, int last)

    • শেষের চেয়ে প্রথম কম থাকাকালীন শুরু করুন। সময়ের ভিতরে, পূর্ণসংখ্যা ভেরিয়েবলটিকে টেম্প হিসাবে ঘোষণা করুন এবং এটিকে arr[first] দিয়ে সেট করুন তারপর arr[first] to arr[last] এবং arr[last] temp সেট করুন। প্রথমটিকে 1 দ্বারা বৃদ্ধি করুন এবং শেষটিকে 1 দ্বারা হ্রাস করুন৷

  • ফলাফল প্রিন্ট করুন।

1. sort() ফাংশন ব্যবহার করে

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
//using the sort() function
void Rearrangement(int arr[], int size){
   sort(arr, arr + size);
}
int main(){
   int arr[] = {4, 2, -1, -1, 6, -3, 0};
   int size = sizeof(arr)/sizeof(arr[0]);
   //calling the function to rearrange the array
   Rearrangement(arr, size);
   //print the array after rearranging the values
   cout<<"Rearrangement of positive and negative numbers using inbuilt sort function is: ";
   for(int i = 0; i < size; i++){
      cout<< arr[i] << " ";
   }
   return 0;
}

আউটপুট

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

Rearrangement of positive and negative numbers using inbuilt sort function is: -3 -1 -1 0 2 4 6

2. একটি ফাংশনে রিকার্সিভ কল

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
void Rotate(int arr[], int first, int last){
   while(first < last){
      int temp = arr[first];
      arr[first] = arr[last];
      arr[last] = temp;
      first++;
      last--;
   }
}
void Rearrangement(int arr[], int first, int last){
   if(first == last){
      return;
   }
   Rearrangement(arr, (first + 1), last);
   if(arr[first] >= 0){
      Rotate(arr, (first + 1), last);
      Rotate(arr, first, last);
   }
}
int main(){
   int arr[] = {4, 2, -1, -1, 6, -3, 0};
   int size = sizeof(arr)/sizeof(arr[0]);
   int temp = 0;
   for(int i = 0; i < size; i++){
      if(arr[i] < 0){
         temp++;
      }
   }
   //calling the function to rearrange the array
   Rearrangement(arr, 0, (size - 1));
   Rotate(arr, temp, (size - 1));
   //print the array after rearranging the values
   cout<<"Rearrangement of positive and negative numbers using Recursion is: ";
   for(int i = 0; i < size; i++){
      cout<< arr[i] << " ";
   }
   return 0;
}

আউটপুট

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

Rearrangement of positive and negative numbers using Recursion is: -1 -1 -3 4 2 6 0

  1. STL ব্যবহার করে C++ এ অ্যারে পণ্য

  2. একটি C++ ফাংশনে একটি 2D অ্যারে পাস করা

  3. হিপ সর্ট অ্যালগরিদম ব্যবহার করে 10টি উপাদানের একটি অ্যারে সাজানোর জন্য C++ প্রোগ্রাম

  4. একটি C++ ফাংশনে একটি অ্যারে পাস করা