Heim >Backend-Entwicklung >C++ >Ordnen Sie das Array so um, dass, wenn i eine gerade Zahl ist, arr[i] >= arr[j], wenn i eine ungerade Zahl ist, arr[i] <= arr[j], wobei j < i, implementiert mit der Sprache C++

Ordnen Sie das Array so um, dass, wenn i eine gerade Zahl ist, arr[i] >= arr[j], wenn i eine ungerade Zahl ist, arr[i] <= arr[j], wobei j < i, implementiert mit der Sprache C++

WBOY
WBOYnach vorne
2023-09-09 17:13:091269Durchsuche

重排数组,使得当 i 为偶数时,arr[i] >= arr[j],当 i 为奇数时,arr[i] <= arr[j],其中 j < i,使用 C++ 语言实现

Wir erhalten ein ganzzahliges Array mit ungeraden und geraden ganzzahligen Werten. Die Aufgabe besteht darin, das Array so umzuordnen, dass arr[i] größer oder gleich arr[j] ist, vorausgesetzt, dass der Wert am Index arr[i] gerade sein sollte, und wenn der Wert an arr[i] ungerade ist, dann sollte arr[i]

ist kleiner oder gleich arr[j].

Werfen wir einen Blick auf die verschiedenen Eingabe- und Ausgabesituationen davon −

Input − int arr[] = {5, 9, 10, 12, 32, 35, 67, 89}

Output − Neu anordnen Das Array nach den Elementen ist: 12 32 10 35 9 67 5 89

Erklärung − Wir erhalten ein Array mit ungeraden und geraden ganzen Zahlen. Jetzt werden wir von der Position arr[i] aus traversieren, die Position arr[j] vergleichen und prüfen, ob arr[i] gerade ist. Dann stellen wir sicher, dass arr[i] größer als arr[j] ist, wenn arr[ i] ungerade ist. Stellen Sie dann sicher, dass arr[i] kleiner oder gleich arr[j] ist.

Input − int arr[] = {4, 5, 1, 2, 9, 10}

Output − Das Array nach der Neuanordnung der Elemente ist: 4 5 2 9 1 10

Erläuterung − Wir erhalten ein Array mit ungeraden und geraden ganzen Zahlen. Jetzt werden wir von der Position arr[i] aus traversieren, die Position arr[j] vergleichen und prüfen, ob arr[i] gerade ist. Dann stellen wir sicher, dass arr[i] größer als arr[j] ist, wenn arr[ i] ungerade ist. Stellen Sie dann sicher, dass arr[i] kleiner oder gleich arr[j] ist.

Die im folgenden Programm verwendete Methode lautet wie folgt:

  • Deklarieren Sie ein Array vom Typ Integer. Berechnen Sie die Größe des Arrays, size = sizeof(arr) / sizeof(arr[0]).

  • Rufen Sie eine Funktion namens array_rearrange(arr, size) auf und übergeben Sie die Daten als Parameter.

    • Deklarieren Sie eine Variable gerade und setzen Sie sie auf gerade = Größe / 2, deklarieren Sie dann eine andere Variable ungerade und setzen Sie sie auf gerade Größe.

    • Deklarieren Sie eine Variable temp und setzen Sie sie auf ungerade – 1. Deklarieren Sie ein Array arr_2[] der Größe arr_1[].

    • Beginnen Sie mit der Schleife. Beginnend mit i als 0 ist i kleiner als die Größe. Setzen Sie innerhalb der Schleife arr_2[i] auf arr[i].

    • Rufen Sie eine Funktion namens sort(arr_2, arr_2 + size) auf.

    • Beginnen Sie mit der Schleife. Beginnend mit i als 0 ist i kleiner als die Größe. Setzen Sie innerhalb der Schleife arr[i] auf arr_2[temp] und dekrementieren Sie die Variable temp um 1.

    • Stellen Sie die Temperatur auf ungerade ein. Beginnen Sie mit der Schleife von i bis 1, i ist kleiner als die Größe. Setzen Sie innerhalb der Schleife arr[i] auf arr_2[temp] und erhöhen Sie temp um 1.

    • Beginnen Sie mit der Schleife. Beginnend mit i als 0 ist i kleiner als die Größe. Drucken Sie arr[i].

Beispiel

#include <bits/stdc++.h>

using namespace std;
void array_rearrange(int arr[], int size){
   int even = size / 2;
   int odd = size - even;
   int temp = odd - 1;
   int arr_2[size];
   for(int i = 0; i < size; i++){
      arr_2[i] = arr[i];
   }
   sort(arr_2, arr_2 + size);
   for(int i = 0; i < size; i += 2){
      arr[i] = arr_2[temp];
      temp--;
   }
   temp = odd;
   for(int i = 1; i < size; i += 2){
      arr[i] = arr_2[temp];
      temp++;
   }
   cout<<"Array after rearranging elements are: ";
   for (int i = 0; i < size; i++){
      cout << arr[i] << " ";
   }
}
int main(){
   int arr[] = {5, 9, 10, 12, 32, 35, 67, 89};
   int size = sizeof(arr) / sizeof(arr[0]);
   array_rearrange(arr, size);
   return 0;
}

Ausgabe

Wenn wir den obigen Code ausführen, wird die folgende Ausgabe generiert

Array after rearranging elements are: 12 32 10 35 9 67 5 89

Das obige ist der detaillierte Inhalt vonOrdnen Sie das Array so um, dass, wenn i eine gerade Zahl ist, arr[i] >= arr[j], wenn i eine ungerade Zahl ist, arr[i] <= arr[j], wobei j < i, implementiert mit der Sprache 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