কম্পিউটার

C++ এ সাজানো আকারে একটি অ্যারের মধ্যে সর্বাধিক সংলগ্ন পার্থক্য


আমাদের একটি অ্যারে দেওয়া হয়েছে। অ্যারে সাজানো প্রয়োজন নেই. কাজটি হল তার সাজানো আকারে সেই অ্যারের সংলগ্ন উপাদানগুলির মধ্যে সর্বাধিক পার্থক্য খুঁজে বের করা। তাই প্রথম জিনিসটি বৃদ্ধি বা হ্রাস ক্রমে বিন্যাস বাছাই করা হয়. তারপর আমরা অ্যারেটি পুনরাবৃত্তি করব এবং Arr[i+1]-Arr[i]-এর সংলগ্ন পার্থক্য গণনা করব। তারপর প্রতিটি পুনরাবৃত্তির জন্য আমরা এই পার্থক্যের সাথে তুলনা করব যা এখন পর্যন্ত সর্বাধিক পাওয়া গেছে।

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

আউটপুট৷ − সাজানো আকারে অ্যারেতে সর্বাধিক সংলগ্ন পার্থক্য হল 3।

ব্যাখ্যা − বাছাই করা Arr[] ক্রমবর্ধমান ক্রমে =[ 1,2,5,7,10]। তাই সন্নিহিত পার্থক্যগুলি নিম্নরূপ -

Arr[1]-Arr[0]=1, Maximum Difference=1
Arr[2]-Arr[1]=3, Maximum Difference=3
Arr[3]-Arr[2]=2, Maximum Difference=3
Arr[4]-Arr[3]=3, Maximum Difference=3

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

আউটপুট − সাজানো আকারে অ্যারেতে সর্বাধিক সংলগ্ন পার্থক্য হল 6৷

ব্যাখ্যা − বাছাই করা Arr[] ক্রমবর্ধমান ক্রমে =[ 5,11,15,20,21]। তাই সন্নিহিত পার্থক্যগুলি নিম্নরূপ -

Arr[1]-Arr[0]=6, Maximum Difference=6
Arr[2]-Arr[1]=4, Maximum Difference=6
Arr[3]-Arr[2]=5, Maximum Difference=6
Arr[4]-Arr[3]=1, Maximum Difference=6

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

  • ইনপুট একটি পূর্ণসংখ্যা অ্যারে Arr[]।

  • ক্রমবর্ধমান ক্রমে অ্যারে সাজান

  • এখন পর্যন্ত পাওয়া সংলগ্ন উপাদানগুলির মধ্যে সর্বাধিক পার্থক্য সংরক্ষণ করতে MaxD বলুন একটি পরিবর্তনশীল ঘোষণা করুন। Arr[1]-Arr[0] হিসেবে এর প্রাথমিক মান নিন।

  • দ্বিতীয় উপাদান থেকে অ্যারের শেষ উপাদান সূচক পর্যন্ত লুপটি শুরু করুন।

  • Arr[i+1]-Arr[i]>MaxD এর মধ্যে গণনাকৃত পার্থক্য থাকলে, 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,6); //this is supposed to sort array in increasing order
   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. সাজানো অ্যারেতে সমস্ত ট্রিপলেট প্রিন্ট করুন যা C++ এ AP গঠন করে

  3. C++ এ সাজানো এবং ঘোরানো অ্যারেতে সর্বাধিক উপাদান

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