কম্পিউটার টিউটোরিয়াল

C++-এ ইনবিল্ট সর্ট ফাংশন দিয়ে ধনাত্মক ও ঋণাত্মক সংখ্যা রি-অ্যারেঞ্জ করুন


একটি পূর্ণসংখ্যার অ্যারে দেওয়া থাকলে, C++ STL-এর sort() ফাংশন বা রিকারসিভ টেকনিক দিয়ে ধনাত্মক ও ঋণাত্মক সংখ্যা রি-অ্যারেঞ্জ করুন।

১. sort() ফাংশন ব্যবহার

  • sort(arr, arr+size) কল করলে অটোমেটিক সর্ট হয়ে যাবে (ঋণাত্মক আগে, ধনাত্মক পরে)।

২. রিকারসিভ কল ব্যবহার

  • প্রথমে ঋণাত্মক সংখ্যার কাউন্ট temp বের করুন।

  • Rearrangement(arr, 0, size-1) রিকারসিভ কল দিন।

  • ফাংশনে first == last হলে ফেরত।

  • Rearrangement(arr, first+1, last) কল করুন।

  • যদি arr[first] >= 0 হয়, Rotate(arr, first+1, last) ও Rotate(arr, first, last) কল করুন।

  • Rotate ফাংশনে টু-পয়েন্টার দিয়ে রিভার্স করুন।

  • শেষে Rotate(arr, temp, size-1) কল করুন।

উদাহরণ কোড (sort())

#include <bits/stdc++.h>
using namespace std;

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]);
    Rearrangement(arr, size);
    cout << "Rearrangement of positive and negative numbers using inbuilt sort function is: ";
    for(int i = 0; i < size; i++) cout << arr[i] << " ";
    return 0;
}

আউটপুট (sort())

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

উদাহরণ কোড (রিকারসিভ)

#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++;
    Rearrangement(arr, 0, size-1);
    Rotate(arr, temp, size-1);
    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. C++ STL-এ accumulate দিয়ে অ্যারে প্রোডাক্ট বের করা

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

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

  4. C++-এ অ্যারে ফাংশনে পাস করা (Passing Array to Function)