हमें एक ऐरे के साथ दिया गया है। सरणी को क्रमबद्ध करने की आवश्यकता नहीं है। कार्य उस सरणी के आसन्न तत्वों के बीच उसके क्रमबद्ध रूप में अधिकतम अंतर को खोजना है। तो पहली बात यह है कि सरणी को बढ़ते या घटते क्रम में क्रमबद्ध करना है। फिर हम सरणी को पुनरावृत्त करेंगे और 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