Heim  >  Artikel  >  Backend-Entwicklung  >  Ordnen Sie in C++ positive und negative Zahlen unter Verwendung eines festen zusätzlichen Leerzeichens neu an

Ordnen Sie in C++ positive und negative Zahlen unter Verwendung eines festen zusätzlichen Leerzeichens neu an

王林
王林nach vorne
2023-09-13 22:25:051240Durchsuche

Ordnen Sie in C++ positive und negative Zahlen unter Verwendung eines festen zusätzlichen Leerzeichens neu an

Wir haben ein Array vom Typ Ganzzahl, das positive und negative Zahlen enthält. Nehmen wir an, es ist arr[] einer beliebigen Größe. Die Aufgabe besteht darin, das Array so neu anzuordnen, dass alle Elemente des Arrays mithilfe der integrierten Sortierfunktion von C++ STL und mithilfe der Rekursion sortiert werden Technische Kodierung und Ausdruck der Ergebnisse.

Schauen wir uns hierfür verschiedene Ein- und Ausgabeszenarien an −

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

output − re Arrange positive und negative Zahlen unter Verwendung eines konstanten zusätzlichen Leerzeichens: -3 -1 -1 0 6 2 4.

Erklärung − Wir erhalten ein ganzzahliges Array der Größe 7, das positive und negative Elemente enthält. Jetzt ordnen wir das Array so um, dass alle Elemente im Array innerhalb eines konstanten zusätzlichen Platzes sortiert werden und das Endergebnis -3 -1 -1 0 2 4 6 ist.

Eingabe − int arr[] = {-9, -10, 2, 3, 10, 5, 8, 4}

Ausgabe − Ordnen Sie positive und negative Zahlen neu an, indem Sie konstanten zusätzlichen Platz verwenden: -9 - 10 2 3 10 5 8 4

Erklärung − Wir erhalten ein ganzzahliges Array der Größe 8, das positive und negative Elemente enthält. Jetzt ordnen wir das Array neu an, sodass alle Elemente im Array innerhalb eines konstanten zusätzlichen Platzes sortiert werden und das Endergebnis -9 -10 2 3 10 5 8 4 ist.

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.

  • Verwenden Sie eine FOR-Schleife, um das Array zu drucken, bevor Sie den Neuanordnungsvorgang durchführen.

  • Rufen Sie die Funktion Rearrangement(arr, size) auf, indem Sie Array und Array-Größe als Parameter übergeben.

  • Innerhalb der Funktion Rearrangement(arr, size)

    • setzt eine Variable vom Typ Integer i auf 0 und j auf die Größe -1.

    • Start while(true). Starten Sie innerhalb von while eine weitere Schleife und erhöhen Sie i, wenn arr[i] kleiner als 0 und i kleiner als size ist.

    • Wenn WHILE arr[j] größer als 0 und j größer als 0 ist, verringern Sie j.

    • Überprüfen Sie, ob i kleiner als j ist, und setzen Sie dann temp auf arr[i], arr[i] auf arr[j], arr[j] auf temp.

    • Ansonsten aus der Schleife ausbrechen.

  • Drucken Sie die Ergebnisse aus.

Beispiel

#include<iostream>
using namespace std;
void Rearrangement(int arr[], int size){
   int i = 0;
   int j = size - 1;
   while(true){
      while(arr[i] < 0 && i < size){
         i++;
      }
      while(arr[j] > 0 && j >= 0){
         j--;
      }
      if (i < j){
         int temp = arr[i];
         arr[i] = arr[j];
         arr[j] = temp;
      }
      else{
         break;
      }
   }
}
int main(){
   int arr[] = {4, 2, -1, -1, 6, -3, 0};
   int size = sizeof(arr)/sizeof(arr[0]);
   //calling the function to rearrange the array
   Rearrangement(arr, size);
   //print the array after rearranging the values
   cout<<"Rearrangement of positive and negative numbers with constant extra space 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

Rearrangement of positive and negative numbers with constant extra space is: -3 -1 -1 0 6 2 4

Das obige ist der detaillierte Inhalt vonOrdnen Sie in C++ positive und negative Zahlen unter Verwendung eines festen zusätzlichen Leerzeichens neu an. 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