Maison  >  Article  >  développement back-end  >  Programme C++ pour réorganiser le tableau sous forme max-min

Programme C++ pour réorganiser le tableau sous forme max-min

王林
王林avant
2023-08-28 14:29:06758parcourir

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.

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

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

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

  • 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

Example

#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;
}

Output

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer

Articles Liés

Voir plus