Maison > développement back-end > C++ > Réorganiser le tableau sous forme max-min en utilisant C++

Réorganiser le tableau sous forme max-min en utilisant C++

WBOY
Libérer: 2023-09-03 19:45:10
avant
1228 Les gens l'ont consulté

Réorganiser le tableau sous forme max-min en utilisant C++

Nous obtenons un tableau trié. Nous devons organiser ce tableau sous la forme la plus grande et la plus petite, c'est-à-dire que le premier élément est le plus grand élément, le deuxième élément est le plus petit élément, le troisième élément est le deuxième plus grand élément et le quatrième élément est le deuxième plus petit élément.

Input : arr[ ] = { 10, 20, 30, 40, 50, 60 }
Output : { 60, 10, 50, 20, 40, 30 }
Explanation : array is rearranged in the form { 1st max, 1st min, 2nd max, 2nd min, 3rd max, 3rd min }

Input : arr [ ] = { 15, 17, 19, 23, 36, 67, 69 }
Output : { 69, 15, 67, 17, 36, 19, 23 }
Copier après la connexion

Il existe un moyen de réorganiser un tableau sous forme maximale et minimale -

Un moyen de trouver la solution

Il existe un moyen de réorganiser un tableau sous forme maximale et minimale -

Double pointeur. méthode

Utilisez deux variables, min et max, pointerez ici vers les éléments les plus grands et les plus petits et créerez un nouveau tableau vide de la même taille pour stocker le tableau réorganisé. Parcourez maintenant le tableau et si l'élément itéré est à un index pair, ajoutez des éléments arr[max] au tableau vide et décrémentez max de 1. Si l'élément a un index impair, ajoutez des éléments arr[min] au tableau vide et incrémentez min de 1. Faites cela jusqu'à ce que le maximum soit inférieur au minimum.

Exemple

#include <bits/stdc++.h>
using namespace std;

int main () {
   int arr[] = { 1, 2, 3, 4, 5, 6 };
   int n = sizeof (arr) / sizeof (arr[0]);
   // creating a new array to store the rearranged array.
   int final[n];
   // pointing variables to initial and final element index.
   int min = 0, max = n - 1;
   int count = 0;
   // iterating over the array until max is less than or equals to max.
   for (int i = 0; min <= max; i++) {
      // if count is even then store max index element

      if (count % 2 == 0) {
         final[i] = arr[max];
         max--;
      }
      // store min index element
      else {
         final[i] = arr[min];
         min++;
      }
      count++;
   }
   // printing the final rearranged array.
   for (int i = 0; i < n; i++)
      cout << final[ i ] << " ";
   return 0;
}
Copier après la connexion

Sortie

6 1 5 2 4 3
Copier après la connexion

La description du code ci-dessus

  • La variable est initialisée à min=0 et max = array_length(n) - 1.
  • for (int i = 0; min
  • Si le nombre est impair, les éléments (max) sont ajoutés au tableau final et la variable max est décrémentée de 1.
  • En supposant que le décompte soit pair, alors (min). Dans ce cas, l'élément sera ajouté au tableau final et la variable min sera augmentée de 1.
  • Enfin, le tableau de résultats sera stocké dans le tableau Final[ ].

Conclusion

Dans cet article, nous avons discuté de la solution pour réorganiser le tableau donné sous la forme max-min. Nous discutons des approches de la solution et la résolvons avec une solution optimiste de complexité temporelle O(n). Nous avons également écrit un programme C++ pour cela. De même, nous pouvons écrire ce programme dans n'importe quel autre langage comme C, Java, Python, etc. Nous espérons que cet article vous a été utile.

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