Heim > Backend-Entwicklung > C++ > Ordnen Sie das Array mit C++ in die Max-Min-Form um

Ordnen Sie das Array mit C++ in die Max-Min-Form um

WBOY
Freigeben: 2023-09-03 19:45:10
nach vorne
1228 Leute haben es durchsucht

Ordnen Sie das Array mit C++ in die Max-Min-Form um

Wir erhalten ein sortiertes Array. Wir müssen dieses Array in der größten und kleinsten Form anordnen, das heißt, das erste Element ist das größte Element, das zweite Element ist das kleinste Element, das dritte Element ist das zweitgrößte Element und das vierte Element ist das zweitkleinste Element . Und so weiter wie –

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 }
Nach dem Login kopieren

Es ​​gibt eine Möglichkeit, ein Array in Maximal- und Minimalform neu anzuordnen –

Möglichkeit, die Lösung zu finden

Es gibt eine Möglichkeit, ein Array in Maximal- und Minimalform neu anzuordnen –

Doppelter Zeiger Methode

Verwenden Sie zwei Variablen, min und max, die hier auf das größte und das kleinste Element verweisen und ein neues leeres Array derselben Größe erstellen, um das neu angeordnete Array zu speichern. Nun iterieren Sie über das Array und wenn das iterierte Element einen geraden Index hat, fügen Sie arr[max]-Elemente zum leeren Array hinzu und dekrementieren max um 1. Wenn sich das Element an einem ungeraden Index befindet, fügen Sie arr[min]-Elemente zum leeren Array hinzu und erhöhen Sie min um 1. Tun Sie dies, bis max kleiner als min ist.

Beispiel

#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;
}
Nach dem Login kopieren

Ausgabe

6 1 5 2 4 3
Nach dem Login kopieren

Die obige Codebeschreibung

  • Die Variable wird auf min=0 und max = array_length(n) - 1 initialisiert.
  • for (int i = 0; min
  • Wenn die Anzahl ungerade ist, werden (max) Elemente zum endgültigen Array hinzugefügt und die Variable max wird um 1 dekrementiert.
  • Angenommen, die Zählung ist gerade, dann (min). In diesem Fall wird das Element zum endgültigen Array hinzugefügt und die Variable min wird um 1 erhöht.
  • Schließlich wird das Ergebnisarray im Final[ ]-Array gespeichert.

Fazit

In diesem Artikel haben wir die Lösung besprochen, das gegebene Array in die Max-Min-Form umzuordnen. Wir diskutieren Lösungsansätze und lösen diese mit einer optimistischen Lösung mit Zeitkomplexität O(n). 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 das Array mit C++ in die Max-Min-Form um. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage