Maison > développement back-end > C++ > Réorganisez un tableau pour que « arr » devienne « i » si « arr » vaut « j » en C++

Réorganisez un tableau pour que « arr » devienne « i » si « arr » vaut « j » en C++

王林
Libérer: 2023-09-18 10:29:05
avant
838 Les gens l'ont consulté

Réorganisez un tableau pour que « arr » devienne « i » si « arr » vaut « j » en C++

Nous recevons un tableau de type entier positif, en supposant qu'il s'agit de arr[], sa taille peut être donnée arbitrairement et la valeur des éléments du tableau doit être supérieure à 0 mais inférieure à la taille du tableau. La tâche est de réorganiser Un tableau, si arr[j] est "j", alors arr[j] devient "i" et le résultat final est imprimé.

Voyons différents scénarios d'entrée et de sortie pour cette situation - h2>

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

output− Tableau avant tri : 3 4 1 2 0 Réorganisez le tableau pour que arr[j] devienne i. Si arr[i] vaut j, c'est : 4 2 3 0 1

Explication− Nous obtenons un tableau entier de taille 6 et les valeurs du tableau. sont inférieurs à 6 de tous les éléments. Maintenant, nous allons réorganiser le tableau, c'est-à-dire que arr[1] vaut 4, arr[4] = 1 ; arr[2] vaut 1, arr[1] = 2 ; 2. arr[2] = 3 ; arr[4] vaut 0, arr[0]=4. Par conséquent, le tableau final est 4 2 3 0 1.

Entrée t− int arr[] = {2, 0, 1, 3}

Sortie− Tableau avant tri : 2 0 1 3 Réorganisez le tableau pour que arr[j] devienne i, si arr[i] est j, alors : 1 2 0 3

Explication− Nous obtenons un tableau entier de taille 6 et les valeurs de tous les éléments du tableau Moins de 6. Maintenant, nous allons réorganiser le tableau, c'est-à-dire arr[0] vaut 2, arr[2] = 0 ; arr[1] vaut 0, arr[0] = 1 ; 1, arr[1] = 2 ; arr[3] est 3, arr[3] = 3. Par conséquent, le tableau final est 1 2 0 3.

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.

  • Imprimez le tableau avant de l'arranger et appelez la fonction Rearrangement(arr, size)

  • Dans la fonction Rearrangement(arr, size)

    • Créez un tableau ptr[] de valeurs de type entier avec un la taille du tableau arr[] est la même.

    • Commencez à boucler FOR de i à 0 jusqu'à ce que i soit inférieur à la taille. À l’intérieur de la boucle, définissez ptr[arr[i]] sur i.

    • Commencez à boucler FOR de i à 0 jusqu'à ce que i soit inférieur à la taille. À l’intérieur de la boucle, définissez arr[i] sur ptr[i].

  • Imprimez le tableau réorganisé.

Exemple

#include <bits/stdc++.h>
using namespace std;
void Rearrangement(int arr[], int size){
   int ptr[size];
   for(int i = 0; i < size; i++){
      ptr[arr[i]] = i;
   }
   for(int i = 0; i < size; i++){
      arr[i] = ptr[i];
   }
}
int main(){
   //input an array
   int arr[] = {3, 4, 1, 2, 0};
   int size = sizeof(arr) / sizeof(arr[0]);
   //print the original Array
   cout<<"Array before Arrangement: ";
   for (int i = 0; i < size; i++){
      cout << arr[i] << " ";
   }
   //calling the function to rearrange the array
   Rearrangement(arr, size);
   //print the array after rearranging the values
   cout<<"\nRearrangement of an array such that &lsquo;arr[j]&rsquo; becomes &lsquo;i&rsquo; if &lsquo;arr[i]&rsquo; is &lsquo;j&rsquo; 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, il générera la sortie suivante

Array before Arrangement: 3 4 1 2 0
Rearrangement of an array such that &lsquo;arr[j]&rsquo; becomes &lsquo;i&rsquo; if &lsquo;arr[i]&rsquo; is &lsquo;j&rsquo; is: 4 2 3 0 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!

Étiquettes associées:
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