配列を最大-最小形式で再配置する C++ プログラム

王林
リリース: 2023-08-28 14:29:06
転載
768 人が閲覧しました

配列を最大-最小形式で再配置する C++ プログラム

整数の配列を取得します。これは、ソート済み/ソートなしの方法で配置できます。タスクは、まず配列を並べ替え (値が並べ替えられていない場合)、次に配列の最初の要素が最大値、2 番目の要素が最小値、3 番目の要素が最大値になるように配列を配置することです。要素は配列です。 2 番目の最大値、4 番目が 2 番目の最小値、というようになります。

この状況のさまざまな入出力シナリオを見てみましょう -

Input - int arr[] = {7, 5, 2, 3, 4, 9, 10, 5 }

出力− ソート前の配列: 2 3 4 5 5 7 9 10 配列を最大-最小形式で次のように並べ替えます: 10 2 9 3 7 4 5 5

説明- 値 {7, 5, 2 を含む整数型の配列を取得します。 、3、4、9、10、5}。まず、配列をソートすると、{2 3 4 5 5 7 9 10} になります。次に、最大の要素を arr[0] (つまり 10) に配置し、次に最小の要素を arr[1] (つまり 2) に配置し、次に 2 番目に大きな要素を arr[2] (つまり 9) に配置します。類推。最終的な結果の配列は 10 2 9 3 7 4 5 5

Input− int arr[] = {2, 4, 1, 6, 7}

になります。 出力- ソート前の配列: 1、2、4、6、7 配列を最大-最小形式で次のように並べ替えます: 7、1、6、2、4

説明- 値 {2, 4, を含む整数型の配列を取得します。 1、6、7}。まず配列をソートすると、結果は {1,2,4,6,7} になります。次に、最大の要素を arr[0] に配置します。 7、次に arr[1] の最小要素 (1)、次に arr[2] の 2 番目に大きい要素 (6) というように続きます。最終的な配列は 7、1、6、2、4 になります。

次のプログラムで使用するメソッドは次のとおりです。

  • 整数型の要素の配列を入力し、配列サイズの値を計算します。 arr[] と配列サイズを引数として関数に渡して、C STL の sort メソッドを呼び出します。

  • #並べ替え前に配列を出力し、関数 Rearr_Max_Min(arr, size) を呼び出します。

  • 関数 Rearr_Max_Min(arr, size) 内

    • 1 つの変数を max として宣言して size - 1 に設定し、別の変数を min として宣言して 0 に設定します。変数を max_val として宣言し、arr[size - 1] 1 に設定します。

    • i が size 未満になるまで、i から 0 まで FOR のループを開始します。ループ内で IF i % 2 = 0 を確認し、arr[i] を arr[i] (arr[max] % max_val) * max_val に設定し、最大値を 1 減分します。

    • それ以外の場合は、arr[i] を arr[i] (arr[min] % max_val) * max_val に設定し、min を 1 ずつ増やします。

    • i が size 未満になるまで、i から 0 まで FOR のループを開始します。ループ内で、arr[i] を arr[i] / max_val

  • ##Example
#include <bits/stdc++.h>
using namespace std;
void Rearr_Max_Min(int arr[], int size){
   int max = size - 1;
   int min = 0;
   int max_val = arr[size - 1] + 1;
   for (int i = 0; i < size; i++){
      if (i % 2 == 0){
         arr[i] += (arr[max] % max_val) * max_val;
         max--;
      }
      else{
         arr[i] += (arr[min] % max_val) * max_val;
         min++;
      }
   }
   for(int i = 0; i < size; i++){
      arr[i] = arr[i] / max_val;
   }
}
int main(){
   //input an array
      int arr[] = {7, 5, 2, 3, 4, 9, 10, 5 };
      int size = sizeof(arr) / sizeof(arr[0]);
      //sort an array
      sort(arr, arr + size);
      //print the original Array after sorting
      cout<<"Array before Arrangement: ";
      for (int i = 0; i < size; i++){
         cout << arr[i] << " ";
      }
      //calling the function to rearrange the array
      Rearr_Max_Min(arr, size);
      //print the array after rearranging the values
      cout<<"\nRearrangement of an array in maximum minimum form is: ";
      for(int i = 0; i < size; i++){
         cout<< arr[i] << " ";
      }
   return 0;
}
ログイン後にコピー

Output

に設定します。上記のコードを実行すると、次の出力が生成されます

Array before Arrangement: 2 3 4 5 5 7 9 10
Rearrangement of an array in maximum minimum form is: 10 2 9 3 7 4 5 5
ログイン後にコピー

以上が配列を最大-最小形式で再配置する C++ プログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート