Heim  >  Artikel  >  Backend-Entwicklung  >  Ordnen Sie ein Array neu an, sodass „arr“ zu „i“ wird, wenn „arr“ in C++ „j“ ist

Ordnen Sie ein Array neu an, sodass „arr“ zu „i“ wird, wenn „arr“ in C++ „j“ ist

王林
王林nach vorne
2023-09-18 10:29:05823Durchsuche

Ordnen Sie ein Array neu an, sodass „arr“ zu „i“ wird, wenn „arr“ in C++ „j“ ist

Wir erhalten ein Array vom Typ positive Ganzzahl, vorausgesetzt, es ist arr[], seine Größe kann beliebig angegeben werden und der Wert der Elemente im Array sollte größer als 0, aber kleiner als die Größe des Arrays sein. Die Aufgabe besteht darin, neu zu ordnen Ein Array, wenn arr[j] „j“ ist, dann wird arr[j] zu „i“ und das Endergebnis wird gedruckt.

Sehen wir uns verschiedene Ein- und Ausgabeszenarien für diese Situation an – h2>

input− int arr[] = {3, 4, 1, 2, 0}

output− Array vor dem Sortieren: 3 4 1 2 0 Ordnen Sie das Array so um, dass arr[j] zu i wird. Wenn arr[i] j ist, ist es: 4 2 3 0 1

Erklärung− Wir erhalten ein ganzzahliges Array der Größe 6 und die Werte im Array sind weniger als 6 aller Elemente. Jetzt werden wir das Array neu anordnen, d. h. arr[1] ist 4, arr[4] = 1; arr[1] = 2; 2. arr[2] = 3; arr[4] ist 0, arr[0]=4. Daher ist das endgültige Array 4 2 3 0 1.

Input t− int arr[] = {2, 0, 1, 3}

Output− Array vor dem Sortieren: 2 0 1 3 Ordnen Sie das Array so um, dass arr[j] zu i wird. Wenn arr[i] j ist, dann: 1 2 0 3

Erklärung− Wir erhalten ein ganzzahliges Array der Größe 6 und die Werte aller Elemente im Array Weniger als 6. Jetzt werden wir das Array neu anordnen, d. h. arr[0] ist 2, arr[2] = 0; arr[0] = 1; 1, arr[1] = 2; arr[3] ist 3, arr[3] = 3. Daher ist das endgültige Array 1 2 0 3.

Die im folgenden Programm verwendete Methode lautet wie folgt:

  • Geben Sie ein Array von Elementen vom Typ Integer ein und berechnen Sie die Größe des Arrays.

  • Drucken Sie das Array vor dem Anordnen und rufen Sie die Funktion Rearrangement(arr, size) auf.

  • In der Funktion Rearrangement(arr, size)

    • Erstellen Sie ein Array ptr[] von ganzzahligen Werten mit a Die Größe des Arrays arr[] ist gleich.

    • Beginnen Sie mit der FOR-Schleife von i nach 0, bis i kleiner als die Größe ist. Setzen Sie innerhalb der Schleife ptr[arr[i]] auf i.

    • Beginnen Sie mit der FOR-Schleife von i nach 0, bis i kleiner als die Größe ist. Setzen Sie innerhalb der Schleife arr[i] auf ptr[i].

  • Drucken Sie das neu angeordnete Array.

Beispiel

#include <bits/stdc++.h>
using namespace std;
void Rearrangement(int arr[], int size){
   int ptr[size];
   for(int i = 0; i < size; i++){
      ptr[arr[i]] = i;
   }
   for(int i = 0; i < size; i++){
      arr[i] = ptr[i];
   }
}
int main(){
   //input an array
   int arr[] = {3, 4, 1, 2, 0};
   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] << " ";
   }
   //calling the function to rearrange the array
   Rearrangement(arr, size);
   //print the array after rearranging the values
   cout<<"\nRearrangement of an array such that &lsquo;arr[j]&rsquo; becomes &lsquo;i&rsquo; if &lsquo;arr[i]&rsquo; is &lsquo;j&rsquo; 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: 3 4 1 2 0
Rearrangement of an array such that &lsquo;arr[j]&rsquo; becomes &lsquo;i&rsquo; if &lsquo;arr[i]&rsquo; is &lsquo;j&rsquo; is: 4 2 3 0 1

Das obige ist der detaillierte Inhalt vonOrdnen Sie ein Array neu an, sodass „arr“ zu „i“ wird, wenn „arr“ in C++ „j“ ist. 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