Maison > Article > développement back-end > Réorganiser un tableau de sorte que les éléments en position paire soient plus grands que les éléments en position impaire (C++)
Nous obtenons un tableau de type entier contenant des nombres positifs et négatifs, disons, arr[] de n'importe quelle taille donnée. La tâche consiste à réorganiser le tableau de telle manière que tous les éléments aux positions ou indices pairs soient plus grands que les éléments aux positions ou indices impairs, et Imprimez les résultats.
input− int arr[] = {2, 1, 4, 3, 6, 5, 8, 7}
output− avant de trier Array de : 2 1 4 3 6 5 8 7 Réorganisez le tableau de manière à ce que les positions paires soient plus grandes que les positions impaires : 1 2 3 4 5 6 7 8
Explication− Nous obtenons un tableau entier de taille 8 contenant des facteurs positifs et négatifs. Maintenant, nous réorganisons le tableau de manière à ce que tous les éléments en position paire soient plus grands que les éléments en position impaire. Le tableau résultant est 1 2 3 4 5 6 7 8.
Input− int arr[] = {-3, 2, -4, -1}
Output− Tableau avant tri : - 3 2 -4 -1 Réorganisez un tableau pour que les positions paires soient plus grandes que les impaires : -4 -3 -1 2
Explication - On obtient un tableau entier de taille 8 contenant des éléments positifs et négatifs. Maintenant, nous réorganisons le tableau de sorte que tous les éléments aux positions paires soient plus grands que les éléments aux positions impaires. Le tableau résultant après cela est -4 -3 -1 2.
Le programme suivant utilise la méthode suivanteSaisissez un tableau d'éléments entiers et calculez la taille du tableau.
li>Triez un tableau à l'aide de la méthode de tri de C++ STL en passant le tableau et la taille du tableau à la fonction de tri.
Déclarez une variable entière et définissez-la en appelant la fonction Rearrangement(arr, size)
Dans la fonction Rearrangement(arr, size)
déclarez un tableau de type entier, en supposant ptr[size] La taille est la même que celle du tableau arr[size]
Déclarez les variables temporaires de type entier, c'est-à-dire le premier à 0 et le dernier à la taille -1.
Boucle FOR de i à 0 jusqu'à ce que i soit inférieur à la taille du tableau. À l'intérieur de la boucle, vérifiez SI (i + 1) % 2 est égal à 0, puis définissez ptr[i] sur arr[last--].
ELSE, définissez ptr[i ] sur arr[first++].
Imprimez les résultats.
#include <bits/stdc++.h> using namespace std; void Rearrangement(int* arr, int size){ int ptr[size]; int first = 0; int last = size - 1; for (int i = 0; i < size; i++){ if((i + 1) % 2 == 0){ ptr[i] = arr[last--]; } else{ ptr[i] = arr[first++]; } } } int main(){ //input an array int arr[] = {2, 1, 4, 3, 6, 5, 8, 7}; 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] << " "; } //sort an Array sort(arr, arr + size); //calling the function to rearrange the array Rearrangement(arr, size); //print the array after rearranging the values cout<<"\nRearrangement of an array such that even positioned are greater than odd is: "; for(int i = 0; i < size; i++){ cout<< arr[i] << " "; } return 0; }
Si nous exécutons le code ci-dessus, il générera la sortie suivante
Array before Arrangement: 2 1 4 3 6 5 8 7 Rearrangement of an array such that even positioned are greater than odd is: 1 2 3 4 5 6 7 8
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!