Heim >Backend-Entwicklung >C++ >Ordnen Sie die Array-Reihenfolge mit C++ neu – Minimalwert, Maximalwert, zweiter Minimalwert, zweiter Maximalwert
Wir erhalten ein Array; wir müssen dieses Array in der folgenden Reihenfolge anordnen: Das erste Element sollte das kleinste Element sein, das zweite Element sollte das größte Element sein, das dritte Element sollte das zweitkleinste Element sein und das Das vierte Element sollte das zweitgrößte Element sein und so weiter. Beispiel –
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 }
Sie können zwei Variablen „x“ und „y“ verwenden, um zu lösen, wo sie auf das maximale und minimale Element zeigen , aber dafür sollte das Array sortiert sein, also müssen wir zuerst das Array sortieren und dann ein neues leeres Array derselben Größe erstellen, um das neu geordnete Array zu speichern. Nun iterieren Sie über das Array und wenn das iterierte Element einen geraden Index hat, fügen Sie das Element arr[ x ] zum leeren Array hinzu und erhöhen Sie x um 1. Wenn das Element einen ungeraden Index hat, fügen Sie das Element arr[ y ] zum leeren Array hinzu und dekrementieren y um 1. Tun Sie dies, bis y kleiner als x wird.
#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
In diesem Artikel haben wir die Lösung besprochen, das gegebene Array in der Min-Max-Form neu anzuordnen. Auch hierfür haben wir ein C++-Programm geschrieben. Ebenso können wir dieses Programm in jeder anderen Sprache wie C, Java, Python usw. schreiben. Wir hoffen, dass dieser Artikel für Sie hilfreich war.
Das obige ist der detaillierte Inhalt vonOrdnen Sie die Array-Reihenfolge mit C++ neu – Minimalwert, Maximalwert, zweiter Minimalwert, zweiter Maximalwert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!