Maison > développement back-end > C++ > Réorganisez le tableau de sorte que lorsque i est un nombre pair, arr[i] >= arr[j], lorsque i est un nombre impair, arr[i] <= arr[j], où j < i, implémenté en utilisant le langage C++

Réorganisez le tableau de sorte que lorsque i est un nombre pair, arr[i] >= arr[j], lorsque i est un nombre impair, arr[i] <= arr[j], où j < i, implémenté en utilisant le langage C++

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Libérer: 2023-09-09 17:13:09
avant
1297 Les gens l'ont consulté

重排数组,使得当 i 为偶数时,arr[i] >= arr[j],当 i 为奇数时,arr[i] <= arr[j],其中 j < i,使用 C++ 语言实现

Nous obtenons un tableau d'entiers contenant des valeurs entières impaires et paires. La tâche consiste à réorganiser le tableau de sorte que arr[i] soit supérieur ou égal à arr[j], à condition que la valeur à l'index arr[i] soit paire, et si la valeur à arr[i] est impaire, alors arr[i] devrait

est inférieur ou égal à arr[j].

Jetons un coup d'œil aux différentes situations d'entrée et de sortie de ce −

Input − int arr[] = {5, 9, 10, 12, 32, 35, 67, 89}

Output − Réorganiser Le tableau après les éléments est : 12 32 10 35 9 67 5 89

Explication − On nous donne un tableau contenant des entiers pairs et impairs. Maintenant, nous allons parcourir à partir de la position arr[i], comparer la position arr[j] et vérifier si arr[i] est pair, puis nous assurer que arr[i] est supérieur à arr[j], si arr[ i] est impair, puis assurez-vous que arr[i] est inférieur ou égal à arr[j].

Entrée − int arr[] = {4, 5, 1, 2, 9, 10}

Sortie − Le tableau après réorganisation des éléments est : 4 5 2 9 1 10

Explication − On nous donne un tableau contenant des entiers pairs et impairs. Maintenant, nous allons parcourir à partir de la position arr[i], comparer la position arr[j] et vérifier si arr[i] est pair, puis nous assurer que arr[i] est supérieur à arr[j], si arr[ i] est impair, puis assurez-vous que arr[i] est inférieur ou égal à arr[j].

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

  • Déclarez un tableau de type entier. Calculez la taille du tableau, size = sizeof(arr) / sizeof(arr[0]).

  • Appelez une fonction appelée array_rearrange(arr, size) et transmettez les données en paramètre.

    • Déclarez une variable paire et définissez-la sur pair = taille / 2, puis déclarez une autre variable impaire et définissez-la sur taille - paire.

    • Déclarez une température variable et réglez-la sur impair - 1. Déclarez un tableau arr_2[] de taille arr_1[].

    • Démarrez la boucle, en commençant par i étant 0 et i étant inférieur à la taille. À l'intérieur de la boucle, définissez arr_2[i] sur arr[i].

    • Appelez une fonction appelée sort(arr_2, arr_2 + size).

    • Démarrez la boucle, en commençant par i étant 0 et i étant inférieur à la taille. Dans la boucle, définissez arr[i] sur arr_2[temp] et décrémentez la variable temp de 1.

    • Réglez la température sur impaire. Commencez à boucler de i à 1, i est inférieur à la taille. À l'intérieur de la boucle, définissez arr[i] sur arr_2[temp] et incrémentez temp de 1.

    • Démarrez la boucle, en commençant par i étant 0 et i étant inférieur à la taille. Imprimer arr[i].

Exemple

#include <bits/stdc++.h>

using namespace std;
void array_rearrange(int arr[], int size){
   int even = size / 2;
   int odd = size - even;
   int temp = odd - 1;
   int arr_2[size];
   for(int i = 0; i < size; i++){
      arr_2[i] = arr[i];
   }
   sort(arr_2, arr_2 + size);
   for(int i = 0; i < size; i += 2){
      arr[i] = arr_2[temp];
      temp--;
   }
   temp = odd;
   for(int i = 1; i < size; i += 2){
      arr[i] = arr_2[temp];
      temp++;
   }
   cout<<"Array after rearranging elements are: ";
   for (int i = 0; i < size; i++){
      cout << arr[i] << " ";
   }
}
int main(){
   int arr[] = {5, 9, 10, 12, 32, 35, 67, 89};
   int size = sizeof(arr) / sizeof(arr[0]);
   array_rearrange(arr, size);
   return 0;
}
Copier après la connexion

Output

Si nous exécutons le code ci-dessus, il générera la sortie suivante

Array after rearranging elements are: 12 32 10 35 9 67 5 89
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!

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