Heim  >  Artikel  >  Backend-Entwicklung  >  Ordnen Sie ein Array neu an, sodass Elemente an geraden Positionen größer sind als Elemente an ungeraden Positionen (C++)

Ordnen Sie ein Array neu an, sodass Elemente an geraden Positionen größer sind als Elemente an ungeraden Positionen (C++)

WBOY
WBOYnach vorne
2023-08-30 18:17:111042Durchsuche

Ordnen Sie ein Array neu an, sodass Elemente an geraden Positionen größer sind als Elemente an ungeraden Positionen (C++)

Wir erhalten ein Array vom Typ Ganzzahl, das positive und negative Zahlen enthält, beispielsweise arr[] beliebiger Größe. Die Aufgabe besteht darin, das Array so umzuordnen, dass alle Elemente an geraden Positionen oder Indizes größer sein sollten als Elemente an ungeraden Positionen oder Indizes, und Drucken Sie die Ergebnisse aus.

Schauen wir uns dazu verschiedene Eingabe- und Ausgabeszenarien an –

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

Ausgabe− vor dem Sortieren des Arrays von: 2 1 4 3 6 5 8 7 Ordnen Sie das Array neu an, sodass gerade Positionen größer als ungerade Positionen sind: 1 2 3 4 5 6 7 8

Erklärung− Wir erhalten ein ganzzahliges Array der Größe 8, das positive und negative Faktoren enthält. Jetzt ordnen wir das Array so um, dass alle Elemente an geraden Positionen größer sind als Elemente an ungeraden Positionen. Das resultierende Array ist 1 2 3 4 5 6 7 8.

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

Output− Array vor dem Sortieren: - 3 2 -4 -1 Ordnen Sie ein Array neu an, sodass gerade Positionen größer als ungerade sind: -4 -3 -1 2

Erklärung – Wir erhalten ein ganzzahliges Array der Größe 8, das positive und negative Elemente enthält. Jetzt ordnen wir das Array so um, dass alle Elemente an geraden Positionen größer sind als Elemente an ungeraden Positionen. Das resultierende Array ist danach -4 -3 -1 2.

Das folgende Programm verwendet die folgende Methode:
  • Geben Sie ein Array ganzzahliger Elemente ein und berechnen Sie die Größe des Arrays.

    li>
  • Sortieren Sie ein Array mit der Sortiermethode von C++ STL, indem Sie das Array und die Größe des Arrays an die Sortierfunktion übergeben.

    ? Die Größe ist die gleiche wie das Array arr[size]
  • Deklarieren Sie temporäre Variablen vom Typ Integer, d. h. zuerst auf 0 und zuletzt auf Größe -1.
  • Schleife FOR von i nach 0, bis i kleiner als die Größe des Arrays ist. Überprüfen Sie innerhalb der Schleife, ob IF (i + 1) % 2 gleich 0 ist, und setzen Sie dann ptr[i] auf arr[last--].

      ELSE, setze ptr[i ] auf arr[first++].
  • Drucken Sie die Ergebnisse aus.

  • Beispiel

    #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;
    }

    Ausgabe
Wenn wir den obigen Code ausführen, wird die folgende Ausgabe generiert
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
  • Das obige ist der detaillierte Inhalt vonOrdnen Sie ein Array neu an, sodass Elemente an geraden Positionen größer sind als Elemente an ungeraden Positionen (C++). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

  • Stellungnahme:
    Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen