Heim  >  Artikel  >  Backend-Entwicklung  >  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
PHPznach vorne
2023-09-13 11:25:021077Durchsuche

重新排列一个数组,使得 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)

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)

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] << " ";
         }
      }

      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

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!

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