Maison > développement back-end > C++ > Réorganiser un tableau pour que arr = i, en utilisant C++

Réorganiser un tableau pour que arr = i, en utilisant C++

PHPz
Libérer: 2023-09-13 11:25:02
avant
1115 Les gens l'ont consulté

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

Nous avons un tableau de type entier positif, en supposant qu'il s'agit de arr[], sa taille peut être donnée arbitrairement et les éléments du tableau doivent être supérieurs à 0 mais inférieurs à la taille du tableau. La tâche consiste à réorganiser le tableau de telle sorte que si arr[i] est égal à « i », alors « i » existe dans le tableau, sinon définissez l'élément arr[i] sur -1 et imprimez le résultat final.

Examinons différents scénarios d'entrée et de sortie pour ce problème :

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

output − re The Le tableau organisé est : 0 1 2 3 4 5 -1 -1

Explication − Nous avons un tableau d'entiers de taille 8, et tous les éléments du tableau sont inférieurs à 8. Maintenant, nous allons réorganiser le tableau, c'est-à-dire

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)
Copier après la connexion

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

output− réorganiser le tableau de telle sorte que arr[i] = i soit : -1 1 2 -1 -1

Explication− Nous obtenons un tableau entier de taille 5, et tous les éléments du tableau ont des valeurs inférieures ou supérieures à 5. Maintenant, nous allons réorganiser le tableau, c'est-à-dire

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)
Copier après la connexion

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

  • Entrez un tableau de type entier et calculez la taille du tableau.

  • Imprimez le tableau avant de trier et appelez la fonction Réarranger(arr, taille)

  • À l'intérieur de la fonction Réarranger(arr, taille)

    • déclarer une variable de type entier, disons ptr

    • from Commencez à boucler de i à 0 jusqu'à ce que i soit inférieur à la taille. À l’intérieur de la boucle, une autre boucle commence de j à 0 jusqu’à ce que j soit inférieur à la taille.

    • À l'intérieur de la boucle, vérifiez si arr[j] = i, puis définissez ptr = arr[j], arr[j] = arr[i], arr[i] = ptr et sortez de la boucle.

    • Démarrez la boucle de i à la taille. À l'intérieur de la boucle, vérifiez si arr[i]! = i, puis définissez arr[i] sur -1.

  • Imprimez le tableau après avoir réorganisé les valeurs du tableau.

Exemple

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

Output

Si nous exécutons le code ci-dessus, il générera la sortie suivante

Rearrangement of an array such that arr[i] = i is: 0 1 2 3 4 5 -1 -1
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!

source:tutorialspoint.com
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