Maison >développement back-end >C++ >Réorganiser l'ordre du tableau à l'aide de C++ : valeur minimale, valeur maximale, deuxième valeur minimale, deuxième valeur maximale
Nous obtenons un tableau ; nous devons organiser ce tableau dans l'ordre suivant : le premier élément doit être le plus petit élément, le deuxième élément doit être le plus grand élément, le troisième élément doit être le deuxième plus petit élément et le le quatrième élément doit être le deuxième plus grand élément et ainsi de suite Exemple -
Input : arr[ ] = { 13, 34, 30, 56, 78, 3 } Output : { 3, 78, 13, 56, 34, 30 } Explanation : array is rearranged in the order { 1st min, 1st max, 2nd min, 2nd max, 3rd min, 3rd max } Input : arr [ ] = { 2, 4, 6, 8, 11, 13, 15 } Output : { 2, 15, 4, 13, 6, 11, 8 }
Vous pouvez utiliser deux variables "x" et "y" pour déterminer où elles pointent vers l'élément maximum et minimum , mais pour ce tableau, il doit être trié, nous devons donc d'abord trier le tableau, puis créer 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 l'élément arr[ x ] au tableau vide et incrémentez x de 1. Si l'élément a un index impair, ajoutez l'élément arr[ y ] au tableau vide et décrémentez y de 1. Faites cela jusqu'à ce que y devienne plus petit que x.
#include <bits/stdc++.h> using namespace std; int main () { int arr[] = { 2, 4, 6, 8, 11, 13, 15 }; int n = sizeof (arr) / sizeof (arr[0]); // creating a new array to store the rearranged array. int reordered_array[n]; // sorting the original array sort(arr, arr + n); // pointing variables to minimum and maximum element index. int x = 0, y = n - 1; int i = 0; // iterating over the array until max is less than or equals to max. while (x <= y) { // if i is even then store max index element if (i % 2 == 0) { reordered_array[i] = arr[x]; x++; } // store min index element else { reordered_array[i] = arr[y]; y--; } i++; } // printing the reordered array. for (int i = 0; i < n; i++) cout << reordered_array[i] << " "; // or we can update the original array // for (int i = 0; i < n; i++) // arr[i] = reordered_array[i]; return 0; }
2 15 4 13 6 11 8
Dans cet article, nous avons discuté de la solution pour réorganiser le tableau donné sous forme min, max. 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!