আমাদেরকে একটি পূর্ণসংখ্যা টাইপ অ্যারে দেওয়া হয়েছে যাতে ধনাত্মক এবং ঋণাত্মক উভয় সংখ্যা থাকে, ধরা যাক, যে কোনো প্রদত্ত আকারের arr[]। কাজটি হল একটি অ্যারেকে এমনভাবে পুনর্বিন্যাস করা যাতে একটি অ্যারের সমস্ত উপাদান C++ STL-এর অন্তর্নির্মিত সাজানোর ফাংশন ব্যবহার করে পাশাপাশি কোডিং এবং ফলাফল প্রিন্ট করার পুনরাবৃত্তিমূলক প্রযুক্তি ব্যবহার করে সাজানো হয়।
আসুন এর জন্য বিভিন্ন ইনপুট আউটপুট পরিস্থিতি দেখি -
ইনপুট − int arr[] ={4, 2, -1, -1, 6, -3, 0}
আউটপুট − ধ্রুবক অতিরিক্ত স্থান সহ ধনাত্মক এবং ঋণাত্মক সংখ্যার পুনর্বিন্যাস হল:-3 -1 -1 0 6 2 4৷
ব্যাখ্যা − আমাদের ধনাত্মক এবং নেতিবাচক উভয় উপাদান সমন্বিত আকার 7 এর একটি পূর্ণসংখ্যা অ্যারে দেওয়া হয়েছে। এখন, আমরা অ্যারেটিকে এমনভাবে সাজাব যাতে একটি অ্যারের সমস্ত উপাদান ধ্রুবক অতিরিক্ত স্থানের মধ্যে সাজানো হয় এবং চূড়ান্ত ফলাফল হবে -3 -1 -1 0 2 4 6৷
ইনপুট − int arr[] ={-9, -10, 2, 3, 10, 5, 8, 4}
আউটপুট − ধ্রুবক অতিরিক্ত স্থান সহ ধনাত্মক এবং ঋণাত্মক সংখ্যার পুনর্বিন্যাস হল:-9 -10 2 3 10 5 8 4
ব্যাখ্যা − আমাদের ধনাত্মক এবং নেতিবাচক উভয় উপাদান সমন্বিত আকার 8 এর একটি পূর্ণসংখ্যা অ্যারে দেওয়া হয়েছে। এখন, আমরা অ্যারেটিকে এমনভাবে সাজাব যাতে একটি অ্যারের সমস্ত উপাদান ধ্রুবক অতিরিক্ত স্থানের মধ্যে সাজানো হয় এবং চূড়ান্ত ফলাফল হবে -9 -10 2 3 10 5 8 4৷
নিচের প্রোগ্রামে ব্যবহৃত পদ্ধতিটি নিম্নরূপ
-
পূর্ণসংখ্যা ধরনের উপাদানগুলির একটি অ্যারে ইনপুট করুন এবং একটি অ্যারের আকার গণনা করুন৷
৷ -
FOR লুপ ব্যবহার করে পুনর্বিন্যাস ক্রিয়া সম্পাদন করার আগে একটি অ্যারে প্রিন্ট করুন৷
৷ -
প্যারামিটার হিসাবে অ্যারের অ্যারে এবং সাইজ পাস করে ফাংশন পুনর্বিন্যাস (আর, আকার) এ কল করুন।
-
ফাংশনের ভিতরে পুনঃবিন্যাস(arr, size)
-
i থেকে 0 এবং j থেকে আকার -1 হিসাবে একটি পূর্ণসংখ্যা টাইপ ভেরিয়েবল ঘোষণা করুন।
-
শুরু করার সময় (সত্য)। কিছুক্ষণের মধ্যে, আরেকটি লুপ শুরু করুন যখন arr[i] 0 এর কম এবং i আকারের থেকে কম তারপর i কে 1 দ্বারা বৃদ্ধি করুন।
-
0-এর থেকে বড় এবং 0-এর থেকে j-এর বেশি হলে শুরু করুন তারপর j-কে 1 দ্বারা কমিয়ে দিন৷
-
পরীক্ষা করুন যদি i j এর থেকে কম হয় তাহলে temp সেট করুন arr[i], arr[i] এ arr[j] এবং arr[j] এ temp।
-
অন্যথা, বিরতি।
-
-
ফলাফল প্রিন্ট করুন।
উদাহরণ
#include<iostream> using namespace std; void Rearrangement(int arr[], int size){ int i = 0; int j = size - 1; while(true){ while(arr[i] < 0 && i < size){ i++; } while(arr[j] > 0 && j >= 0){ j--; } if (i < j){ int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } else{ break; } } } 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 with constant extra space is: "; for(int i = 0; i < size; i++){ cout<< arr[i] << " "; } return 0; }
আউটপুট
যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট তৈরি করবে
Rearrangement of positive and negative numbers with constant extra space is: -3 -1 -1 0 6 2 4