Heim > Backend-Entwicklung > C++ > Hauptteil

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

王林
Freigeben: 2023-09-18 10:29:05
nach vorne
835 Leute haben es durchsucht

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;
}
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage