Maison > développement back-end > C++ > En C++, réorganisez les nombres positifs et négatifs en utilisant un espace supplémentaire fixe

En C++, réorganisez les nombres positifs et négatifs en utilisant un espace supplémentaire fixe

王林
Libérer: 2023-09-13 22:25:05
avant
1392 Les gens l'ont consulté

En C++, réorganisez les nombres positifs et négatifs en utilisant un espace supplémentaire fixe

Nous avons un tableau de type entier contenant des nombres positifs et négatifs, disons qu'il s'agit d'un arr[] d'une taille donnée. La tâche consiste à réorganiser le tableau afin que tous les éléments du tableau soient triés à l'aide de la fonction de tri intégrée de C++ STL et en utilisant la récursion. Codage technique et impression des résultats.

Examinons différents scénarios d'entrée et de sortie pour cette −

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

output − re Arrange nombres positifs et négatifs, en utilisant un espace supplémentaire constant : -3 -1 -1 0 6 2 4.

Explication − On nous donne un tableau d'entiers de taille 7, contenant des éléments positifs et négatifs. Maintenant, nous allons réorganiser le tableau de manière à ce que tous les éléments du tableau soient triés dans un espace supplémentaire constant et le résultat final sera -3 -1 -1 0 2 4 6.

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

Sortie − Réorganiser les nombres positifs et négatifs, en utilisant un espace supplémentaire constant : -9 - 10 2 3 10 5 8 4

Explication − On nous donne un tableau entier de taille 8 contenant des éléments positifs et négatifs. Maintenant, nous allons réorganiser le tableau de manière à ce que tous les éléments du tableau soient triés dans un espace supplémentaire constant et le résultat final sera -9 -10 2 3 10 5 8 4.

La méthode utilisée dans le programme ci-dessous est la suivante

  • Saisissez un tableau d'éléments de type entier et calculez la taille du tableau.

  • Utilisez une boucle FOR pour imprimer le tableau avant d'effectuer l'opération de réorganisation.

  • Appelez la fonction Rearrangement(arr, size) en passant le tableau et la taille du tableau comme paramètres.

  • À l'intérieur de la fonction Rearrangement(arr, size)

    • définit une variable de type entier i à 0 et j à la taille -1.

    • Démarrez while (vrai). Pendant ce temps, démarrez une autre boucle et incrémentez i lorsque arr[i] est inférieur à 0 et i est inférieur à la taille.

    • Lorsque WHILE arr[j] est supérieur à 0 et j est supérieur à 0, diminuez j.

    • Vérifiez SI i est inférieur à j, puis réglez temp sur arr[i], arr[i] sur arr[j], arr[j] sur temp.

    • Sinon, sortez de la boucle.

  • Imprimez les résultats.

Exemple

#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;
}
Copier après la connexion

Output

Si nous exécutons le code ci-dessus, la sortie suivante sera générée

Rearrangement of positive and negative numbers with constant extra space is: -3 -1 -1 0 6 2 4
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal