C++でソートされた形式の配列の最大隣接差
入力 − 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]とします。
-
配列の2番目の要素から最後の要素のインデックスまでループを開始します。
-
Arr [i + 1] -Arr [i]> MaxDの計算された差がある場合は、MaxDを更新します。
-
最後から2番目の要素インデックスに到達するまでこれを続けます。
-
結果の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
-
C++でソートおよび回転された配列の最大要素
説明 未知のポイントで回転する個別の要素のソートされた配列が与えられた場合、タスクはその中の最大の要素を見つけることです。 例 入力配列が{30、40、50、10、20}の場合、最大要素は50です。 アルゴリズム 最大要素は、次の要素がそれよりも小さい唯一の要素です。次に小さい要素がない場合、回転はありません。つまり、最後の要素が最大です 中間要素のこの条件を、mid –1およびmid+ 1の要素と比較して確認します。最大要素がmid–1およびmid+ 1の要素である場合、最大要素が中央にない場合(midでもmidでもない場合) mid + 1)の場合、maximumelementは左半
-
ソートされた配列を実装するC++プログラム
並べ替えられた配列は、各要素が数値、アルファベット順などの順序で並べ替えられた配列です。バブルの並べ替え、挿入の並べ替え、選択の並べ替え、マージの並べ替え、クイック並べ替えなど、数値の配列を並べ替えるアルゴリズムは多数あります。ヒープソートなど。選択ソートを使用した配列のソートの詳細については、以下を参照してください。 選択ソートは、ソートされた配列を生成するソート方法です。これは、配列内の最小の要素を繰り返し見つけて、ソートされていない部分の先頭にある要素と交換することによって行われます。 選択ソートを使用してソートされた配列を実装するプログラムは次のとおりです。 例 #include&