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

C++-এ অ্যারে সর্টেড করতে Arr2-এর সর্বোচ্চ উপাদান বের করা

আমাদের দুটি অ্যারে Arr1[] ও Arr2[] দেওয়া আছে। Arr1[] অ্যাসেন্ডিং অর্ডারে সর্টেড কিন্তু একটি এলিমেন্ট ভুল জায়গায়। Arr2[]-থেকে একটি এলিমেন্ট বেছে নিয়ে Arr1[]-এর ভুল এলিমেন্ট রিপ্লেস করলে Arr1[] সর্টেড হয়। Arr2[]-এ একাধিক অপশন থাকলে সর্বোচ্চটি বেছে নেওয়া।

ইনপুট

Arr1[]= { 1,3,5,7,2,11 }, Arr2[]= { 4,8,7,10,9 }

আউটপুট

Maximum element that can make Arr1 sorted: 10

ব্যাখ্যা: Arr2[]-এ 8,9,10 >=7 এবং <=11। সর্বোচ্চ ১০। নতুন Arr1[]: {1,3,5,7,10,11} সর্টেড।

ইনপুট

Arr1[]= { 12,5,22,17 }, Arr2[]= { 4,8,7,10,9 }

আউটপুট

No such element.

ব্যাখ্যা: Arr2[]-এ ১২ থেকে ২২ এর মধ্যে কোনো সংখ্যা নেই।

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

  • wpos = ভুল এলিমেন্টের ইনডেক্স (arr[i] < arr[i-1])।
  • maxx = Arr2[]-এর উপযুক্ত এলিমেন্টের ম্যাক্স (>= arr[wpos-1] && <= arr[wpos+1])।
  • Arr1[wpos] = maxx আপডেট।
  • পাওয়া না গেলে -1 রিটার্ন।

উদাহরণ কোড

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

int sortMax(int arr1[], int arr2[], int n1, int n2){
    int wpos = -1, maxx = -1;
    for(int i=0; i= arr1[wpos-1] && arr2[j] <= arr1[wpos+1])
            if(arr2[j] >= maxx) maxx = arr2[j];
    }
    if(maxx != -1) arr1[wpos] = maxx;
    return maxx;
}

int main(){
    int arr1[] = { 1, 3, 7, 4, 10 };
    int arr2[] = { 2, 1, 6, 8, 9 };
    int len1 = sizeof(arr1)/sizeof(arr1[0]);
    int len2 = sizeof(arr2)/sizeof(arr2[0]);
    int res = sortMax(arr1, arr2, len1, len2);
    if(res == -1) cout << "No swap possible! No such element!";
    else{
        cout << "Maximum in arr2[] to make arr1[] sorted:" << res;
        cout << endl << "Arr1[]:";
        for(int i=0; i

আউটপুট

Maximum in arr2[] to make arr1[] sorted:9
Arr1[]:1 3 7 9 10
Arr2[]:2 1 6 8 9
  1. C++-এ অ্যারেতে সর্বোচ্চ ইকুইলিব্রিয়াম যোগফল

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

  3. C++-এ একটি দিয়ে দেয়া সংখ্যার অঙ্ক ব্যবহার করে সর্বোচ্চ সংখ্যা নির্ণয়

  4. সি++-এ যেসব ফাংশন ওভারলোড করা যায় না