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

C++-তে অ্যারের সর্টেড ফর্মে আজ করা সর্বোচ্চ পার্থক্য বের করা


আমাদের একটি অ্যারে দেওয়া আছে যা সর্টেড নাও হতে পারে। টাস্ক হলো সেটিকে সর্টেড ফর্মে আনতে এবং তারপর আজ করা (adjacent) এলিমেন্টগুলোর মধ্যে সর্বোচ্চ পার্থক্য বের করা।

ইনপুট − Arr[] = [1, 5, 10, 2, 7]

আউটপুট − Maximum adjacent difference in array in its sorted form is 3.

ব্যাখ্যা − ইনক্রিজিং অর্ডারে সর্ট করলে: [1, 2, 5, 7, 10]। আজ করা পার্থক্যগুলো:

Arr[1]-Arr[0]=1, Max=1
Arr[2]-Arr[1]=3, Max=3
Arr[3]-Arr[2]=2, Max=3
Arr[4]-Arr[3]=3, Max=3

ইনপুট − Arr[] = [5, 11, 21, 15, 20]

আউটপুট − Maximum adjacent difference in array in its sorted form is 6.

ব্যাখ্যা − সর্টেড: [5, 11, 15, 20, 21]। পার্থক্যগুলো: ৬, ৪, ৫, ১ — সর্বোচ্চ ৬।

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

  • ইন্টিজার অ্যারে Arr[] ইনপুট নিন।
  • অ্যারেটি ইনক্রিজিং অর্ডারে সর্ট করুন (সর্টিং অর্ডার মেইন ফ্যাক্টর নয়)।
  • MaxD ভ্যারিয়েবল দিয়ে সর্বোচ্চ পার্থক্য সংরক্ষণ করুন, ইনিশিয়াল ভ্যালু Arr[1]-Arr[0]।
  • দ্বিতীয় এলিমেন্ট থেকে লাস্ট এলিমেন্ট পর্যন্ত লুপ চালান।
  • প্রতিটি ইটারেশনে Arr[i+1] - Arr[i] ক্যালকুলেট করুন এবং MaxD-এর সাথে তুলনা করুন। বড় হলে আপডেট করুন।
  • সেকেন্ড লাস্ট এলিমেন্ট পর্যন্ত চালিয়ে যান।
  • MaxD প্রিন্ট করুন।

উদাহরণ

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

int max_adj_Diff(int A[], int size) {
    int MaxD = A[1] - A[0];
    for (int i = 1; i < size - 1; i++) {
        if (A[i+1] - A[i] > MaxD)
            MaxD = A[i+1] - A[i];
    }
    return MaxD;
}

int main() {
    int Arr[] = {1, 5, 2, 18, 20, 13};
    sort(Arr, Arr + 6); // ইনক্রিজিং অর্ডারে সর্ট
    int md = max_adj_Diff(Arr, 6);
    cout << "Maximum adjacent difference in array in its sorted form: " << md;
    return 0;
}

আউটপুট

Maximum adjacent difference in array in its sorted form: 8
  1. C++-এ সর্টেড অ্যারে থেকে ডুপ্লিকেট রিমুভ II (প্রতিটি এলিমেন্ট সর্বোচ্চ দুবার থাকবে)

  2. সর্টেড অ্যারেতে AP তৈরী করার সব ট্রিপলেট প্রিন্ট করা C++-তে

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

  4. সোর্টেড অ্যারে বাস্তবায়নের C++ প্রোগ্রাম