Maison > Article > développement back-end > Programme C++ pour réorganiser le tableau sous forme max-min
Nous obtenons un tableau d'entiers, qui peuvent être disposés de manière triée/non triée. La tâche consiste d'abord à trier le tableau (si les valeurs ne sont pas triées), puis à organiser le tableau de manière à ce que le premier élément du tableau soit la valeur maximale, le deuxième élément soit la valeur minimale et le troisième. l'élément est le tableau. Le deuxième maximum, le quatrième sera le deuxième minimum, et ainsi de suite.
input − int arr[] = {7, 5, 2, 3, 4, 9, 10, 5 }
output− Tableau avant le tri : 2 3 4 5 5 7 9 10 Réorganisez le tableau sous forme max-min comme : 10 2 9 3 7 4 5 5
Explication− On obtient un tableau de type entier contenant les valeurs {7, 5, 2, 3, 4, 9, 10 , 5 } . Tout d’abord, nous trions un tableau, ce sera {2 3 4 5 5 7 9 10}. Deuxièmement, disposez le plus grand élément à arr[0] (c'est-à-dire 10), puis disposez le plus petit élément à arr[1] (c'est-à-dire 2), puis disposez le deuxième plus grand élément à arr[2] (c'est-à-dire 9), et ainsi de suite. analogie. Le tableau de résultat final sera 10 2 9 3 7 4 5 5
Input− int arr[] = {2, 4, 1, 6, 7}
Output− Tableau avant tri : 1, 2, 4, 6, 7 Réorganisez le tableau sous forme max-min comme : 7, 1, 6, 2, 4
Explication− Nous obtenons un tableau de type entier contenant les valeurs {2, 4, 1, 6, 7}. Nous trions d’abord un tableau, le résultat est {1,2,4,6,7}. Deuxièmement, disposez le plus grand élément à arr[0], c'est-à-dire 7 puis le plus petit élément à arr[1] qui vaut 1 puis le deuxième plus grand élément à arr[2] qui vaut 6 et ainsi de suite. Le tableau final sera 7, 1, 6, 2, 4
Entrez un tableau d'éléments de type entier et calculez la taille du tableau. Appelez la méthode de tri C++ STL en passant arr[] et la taille du tableau comme arguments à la fonction.
Imprimez le tableau avant de l'arranger et appelez la fonction Rearr_Max_Min(arr, size)
À l'intérieur de la fonction Rearr_Max_Min(arr, size)
Déclarez une variable comme max et définissez-la sur size - 1, sera Définissez une autre variable sur min et définissez-la sur 0. Déclarez la variable comme max_val et définissez-la sur arr[size - 1] + 1.
Commencez à boucler FOR de i à 0 jusqu'à ce que i soit inférieur à la taille. À l'intérieur de la boucle, vérifiez SI i % 2 = 0, puis définissez arr[i] sur arr[i] + (arr[max] % max_val) * max_val et décrémentez la valeur maximale de 1.
Sinon, définissez arr[i] sur arr[i] + (arr[min] % max_val) * max_val et augmentez min de 1.
Commencez à boucler FOR de i à 0 jusqu'à ce que i soit inférieur à la taille. Dans la boucle, définissez arr[i] sur arr[i] / max_val
#include <bits/stdc++.h> using namespace std; void Rearr_Max_Min(int arr[], int size){ int max = size - 1; int min = 0; int max_val = arr[size - 1] + 1; for (int i = 0; i < size; i++){ if (i % 2 == 0){ arr[i] += (arr[max] % max_val) * max_val; max--; } else{ arr[i] += (arr[min] % max_val) * max_val; min++; } } for(int i = 0; i < size; i++){ arr[i] = arr[i] / max_val; } } int main(){ //input an array int arr[] = {7, 5, 2, 3, 4, 9, 10, 5 }; int size = sizeof(arr) / sizeof(arr[0]); //sort an array sort(arr, arr + size); //print the original Array after sorting cout<<"Array before Arrangement: "; for (int i = 0; i < size; i++){ cout << arr[i] << " "; } //calling the function to rearrange the array Rearr_Max_Min(arr, size); //print the array after rearranging the values cout<<"\nRearrangement of an array in maximum minimum form 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 3 4 5 5 7 9 10 Rearrangement of an array in maximum minimum form is: 10 2 9 3 7 4 5 5
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!