Heim > Backend-Entwicklung > C++ > Ordnen Sie ein Array mit C++ so um, dass arr = i ist

Ordnen Sie ein Array mit C++ so um, dass arr = i ist

PHPz
Freigeben: 2023-09-13 11:25:02
nach vorne
1092 Leute haben es durchsucht

重新排列一个数组,使得 arr = i,使用 C++

Wir haben ein Array vom Typ positive Ganzzahl, vorausgesetzt, es ist arr[], seine Größe kann beliebig angegeben werden und die Elemente im Array sollten größer als 0, aber kleiner als die Größe des Arrays sein. Die Aufgabe besteht darin, das Array so neu anzuordnen, dass, wenn arr[i] gleich „i“ ist, „i“ im Array vorhanden ist. Andernfalls wird das Element arr[i] auf -1 gesetzt und das Endergebnis gedruckt.

Sehen wir uns verschiedene Ein- und Ausgabeszenarien für dieses Problem an:

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

output − re The Das angeordnete Array ist: 0 1 2 3 4 5 -1 -1

Erklärung − Wir haben ein ganzzahliges Array der Größe 8 und alle Elemente im Array sind kleiner als 8. Jetzt werden wir das Array neu anordnen, d. h.

arr[0] = 0(present in an array)
arr[1] = 1(present in an array)
arr[2] = 2(present in an array)
arr[3] = 3(present in an array)
arr[4] = 4(present in an array)
arr[5] = 5(present in an array)
arr[6] = -1(NOT present in an array)
arr[7] = -1(NOT present in an array)
Nach dem Login kopieren

input− int arr[] = {1, 2, 6, 9, 10}

output− ordnen Sie das Array so um, dass arr[i] = i ist: -1 1 2 -1 -1

Erklärung− Wir erhalten ein ganzzahliges Array der Größe 5, und alle Elemente im Array haben Werte kleiner oder größer als 5. Jetzt werden wir das Array neu anordnen, d. h.

arr[0] = -1(NOT present in an array)
arr[1] = 1(present in an array)
arr[2] = 2(present in an array)
arr[3] = -1(NOT present in an array)
arr[4] = -1(NOT present in an array)
Nach dem Login kopieren

Die im folgenden Programm verwendete Methode ist wie folgt:

  • Geben Sie ein Array vom Typ Integer ein und berechnen Sie die Größe des Arrays. ?? Beginnen Sie mit der Schleife von i bis 0, bis i kleiner als die Größe ist. Innerhalb der Schleife beginnt eine weitere Schleife von j bis 0, bis j kleiner als die Größe ist.

  • Überprüfen Sie innerhalb der Schleife, ob arr[j] = i, dann setzen Sie ptr = arr[j], arr[j] = arr[i], arr[i] = ptr und brechen Sie aus der Schleife aus.

  • Beginnen Sie mit der Schleife von I bis Größe. Überprüfen Sie innerhalb der Schleife, ob arr[i]! = i, dann setze arr[i] auf -1.

    • Drucken Sie das Array, nachdem Sie die Array-Werte neu angeordnet haben.
    • Beispiel
    • #include <iostream>
      using namespace std;
      void Rearranging(int arr[], int size){
         int ptr;
         for(int i = 0; i < size; i++){
            for(int j = 0; j < size; j++){
               if(arr[j] == i){
                  ptr = arr[j];
                  arr[j] = arr[i];
                  arr[i] = ptr;
                  break;
               }
            }
         }
         for(int i = 0; i < size; i++){
            if(arr[i] != i){
               arr[i] = -1;
            }
         }
      }
      int main(){
         int arr[] = {0, 8, 1, 5, 4, 3, 2, 9 };
         int size = sizeof(arr) / sizeof(arr[0]);
         //calling the function to rearrange an array such that arr[i] = i
         Rearranging(arr, size);
         //Printing the array
         cout<<"Rearrangement of an array such that arr[i] = i is: ";
         for(int i = 0; i < size; i++){
            cout << arr[i] << " ";
         }
      }
      Nach dem Login kopieren

      Ausgabe

    • Wenn wir den obigen Code ausführen, wird die folgende Ausgabe generiert
    • Rearrangement of an array such that arr[i] = i is: 0 1 2 3 4 5 -1 -1
      Nach dem Login kopieren

      Das obige ist der detaillierte Inhalt vonOrdnen Sie ein Array mit C++ so um, dass arr = i ist. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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