Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

सी ++ में अपने क्रमबद्ध रूप में किसी सरणी में अधिकतम आसन्न अंतर


हमें एक ऐरे के साथ दिया गया है। सरणी को क्रमबद्ध करने की आवश्यकता नहीं है। कार्य उस सरणी के आसन्न तत्वों के बीच उसके क्रमबद्ध रूप में अधिकतम अंतर को खोजना है। तो पहली बात यह है कि सरणी को बढ़ते या घटते क्रम में क्रमबद्ध करना है। फिर हम सरणी को पुनरावृत्त करेंगे और Arr[i+1]-Arr[i] के आसन्न अंतर की गणना करेंगे। फिर प्रत्येक पुनरावृत्ति के लिए हम इस अंतर की तुलना उस अंतर से करेंगे जो अब तक सबसे अधिक पाया गया है।

इनपुट - एआर [] =[ 1,5,10,2,7 ]

आउटपुट − अपने क्रमबद्ध रूप में सरणी में अधिकतम आसन्न अंतर 3 है।

स्पष्टीकरण - बढ़ते क्रम में क्रमबद्ध एआर [] =[ 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

इनपुट - अरे [] =[ 5,11,21,15,20 ]

आउटपुट - सरणी में इसके क्रमबद्ध रूप में अधिकतम आसन्न अंतर 6 है।

स्पष्टीकरण - बढ़ते क्रम में क्रमबद्ध एआर [] =[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[]।

  • सरणी को बढ़ते क्रम में क्रमबद्ध करें। (सॉर्टिंग ऑर्डर यहां मायने नहीं रखता)

  • अब तक पाए गए आसन्न तत्वों के बीच अधिकतम अंतर को संग्रहीत करने के लिए मैक्सडी का कहना है कि एक चर घोषित करें। इसका प्रारंभिक मान 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. सभी ट्रिपल को सॉर्ट किए गए सरणी में प्रिंट करें जो सी ++ में एपी बनाते हैं

    इस समस्या में, हमें संख्याओं की एक क्रमबद्ध सरणी दी जाती है और हमें अंकगणितीय प्रगति के रूप में त्रिगुणों को खोजने की आवश्यकता होती है। एक अंकगणितीय प्रगति संख्याओं की एक श्रृंखला है जिसमें क्रमागत पदों के बीच का अंतर समान होता है। आइए समस्या को बेहतर ढंग से समझने के लिए एक उदाहरण लेते हैं - Inpu

  1. सी ++ में क्रमबद्ध और घुमाए गए सरणी में अधिकतम तत्व

    विवरण किसी अज्ञात बिंदु पर घुमाए गए अलग-अलग तत्वों की एक क्रमबद्ध सरणी को देखते हुए, कार्य इसमें अधिकतम तत्व ढूंढना है। उदाहरण यदि इनपुट सरणी {30, 40, 50, 10, 20} है तो अधिकतम तत्व 50 है। एल्गोरिदम अधिकतम तत्व एकमात्र ऐसा तत्व है जिसका अगला तत्व उससे छोटा है। यदि कोई अगला छोटा तत्व नहीं है, तो को

  1. सी ++ प्रोग्राम सॉर्ट किए गए ऐरे को लागू करने के लिए

    एक क्रमबद्ध सरणी एक सरणी है जिसमें प्रत्येक तत्व को किसी क्रम में क्रमबद्ध किया जाता है जैसे संख्यात्मक, वर्णानुक्रम आदि। संख्यात्मक सरणी को सॉर्ट करने के लिए कई एल्गोरिदम हैं जैसे बबल सॉर्ट, इंसर्शन सॉर्ट, सेलेक्शन सॉर्ट, मर्ज सॉर्ट, क्विक सॉर्ट, ढेर सॉर्ट आदि। चयन सॉर्ट का उपयोग करके सरणी को सॉर्ट