ホームページ  >  記事  >  バックエンド開発  >  偶数位置の要素が奇数位置の要素より大きくなるように配列を再配置する (C++)

偶数位置の要素が奇数位置の要素より大きくなるように配列を再配置する (C++)

WBOY
WBOY転載
2023-08-30 18:17:111000ブラウズ

偶数位置の要素が奇数位置の要素より大きくなるように配列を再配置する (C++)

正と負の数値を含む整数型の配列 (たとえば、任意のサイズの arr[]) を取得します。タスクは、偶数の位置またはインデックスにあるすべての要素が奇数の位置またはインデックスにある要素より大きくなるように配列を再配置することです。 結果を印刷します。

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

Input- int arr[] = {2, 1, 4, 3, 6, 5, 8 , 7}

出力− ソート前の配列: 2 1 4 3 6 5 8 7 偶数の位置が奇数の位置より大きくなるように配列を再配置します。 1 2 3 4 5 6 7 8

説明- 正と負の要素を含むサイズ 8 の整数配列が得られます。ここで、偶数位置のすべての要素が奇数位置の要素より大きくなるように配列を再配置します。結果の配列は 1 2 3 4 5 6 7 8 になります。

Input- int arr[] = {-3, 2, -4, -1}

Output- 配置前の配列: - 3 2 -4 -1 偶数の位置が奇数の位置よりも大きくなるように配列を再配置します。 -4 -3 -1 2

説明 - 正と負の要素を含むサイズ 8 の整数配列を取得します。ここで、偶数位置のすべての要素が奇数位置の要素よりも大きくなるように配列を再配置します。これを実行した後の結果の配列は、-4 -3 -1 2 となります。

次のプログラムでは、次のメソッドを使用します。
  • 整数要素の配列を入力し、配列のサイズを計算します。

    li>
  • C STL の sort メソッドを使用して配列を並べ替えるには、配列と配列のサイズを sort 関数に渡します。

  • 整数変数を宣言し、関数 Rearrangement(arr, size) を呼び出して設定します。

  • 関数 Rearrangement(arr, size) 内

      #ptr[size] のサイズが配列 arr[size] と同じであると仮定して、整数型の配列を宣言します。一時的な整数型変数を宣言します。つまり、最初の変数は 0 で、最後の変数のサイズは -1 です。

  • i が配列のサイズより小さくなるまで、i から 0 まで FOR をループします。ループ内で、IF (i 1) % 2 が 0 に等しいことを確認し、ptr[i] を arr[last--] に設定します。

  • ELSE、ptr[i ] を arr[first ] に設定します。

  • #結果を印刷します。

  • #include <bits/stdc++.h>
    using namespace std;
    void Rearrangement(int* arr, int size){
       int ptr[size];
       int first = 0;
       int last = size - 1;
       for (int i = 0; i < size; i++){
          if((i + 1) % 2 == 0){
             ptr[i] = arr[last--];
          }
          else{
             ptr[i] = arr[first++];
          }
       }
    }
    int main(){
       //input an array
       int arr[] = {2, 1, 4, 3, 6, 5, 8, 7};
       int size = sizeof(arr) / sizeof(arr[0]);
       //print the original Array
       cout<<"Array before Arrangement: ";
       for (int i = 0; i < size; i++){
          cout << arr[i] << " ";
       }
       //sort an Array
       sort(arr, arr + size);
       //calling the function to rearrange the array
       Rearrangement(arr, size);
       //print the array after rearranging the values
       cout<<"\nRearrangement of an array such that even positioned are greater than odd is: ";
       for(int i = 0; i < size; i++){
          cout<< arr[i] << " ";
       }
       return 0;
    }

    出力

  • 上記のコードを実行すると、次の出力が生成されます
    Array before Arrangement: 2 1 4 3 6 5 8 7
    Rearrangement of an array such that even positioned are greater than odd is: 1 2 3 4 5 6 7 8

    以上が偶数位置の要素が奇数位置の要素より大きくなるように配列を再配置する (C++)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    声明:
    この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。