Heim > Backend-Entwicklung > C++ > Hauptteil

Minimieren Sie das Produkt der größten Zahlen in zwei Arrays mithilfe von Swap

王林
Freigeben: 2023-08-29 19:21:05
nach vorne
1324 Leute haben es durchsucht

Minimieren Sie das Produkt der größten Zahlen in zwei Arrays mithilfe von Swap

Die Manipulation der Datenstruktur ist heute ein wichtiger Aspekt der erfolgreichen Lösungsentwicklung in der modernen Programmierung und Informatik. Dies ist auf die zunehmende Komplexität dieser Strukturen im Laufe der Zeit zurückzuführen. Ein Beispiel ist die Durchführung einer Swap-Operation, um die Summe der größten in zwei Arrays enthaltenen Zahlen zu minimieren und dadurch ihren Gesamtwert zu verringern. In diesem Artikel diskutieren wir zwei Methoden zur Lösung dieser Aufgaben mit C++ und würdigen dabei die Vor- und Nachteile beider Methoden aus unterschiedlichen Perspektiven.

Grammatik

Um die Methoden und Codes in der Programmiersprache C++ effektiv zu verstehen, müssen wir über ein solides Verständnis der grundlegenden Syntax verfügen. Dabei geht es darum, die für das jeweilige Thema relevanten Komponenten genauer unter die Lupe zu nehmen.

Arrays: int arrayName[size];
Sorting: sort(arrayName, arrayName + size);
Swap: swap(arrayName1[index], arrayName2[index]);
Function Declaration: int functionName(type variableName);
Nach dem Login kopieren

Algorithmus

Eine Möglichkeit, das Produkt der größten Zahlen in zwei Arrays zu reduzieren, besteht darin, einen gemeinsamen Algorithmus zu verwenden, um ihre Elemente auszutauschen. Um diesen Ansatz zu veranschaulichen, betrachten Sie das folgende Beispiel:

  • Akzeptiert oder initialisiert zwei Arrays.

  • Sortieren Sie zwei Arrays.

  • Finden Sie das größte Element aus jedem Array.

  • Wenn das größte Element im ersten Array wichtiger ist als das größte Element im zweiten Array, tauschen Sie es aus.

  • Wiederholen Sie die Schritte 3 und 4, bis wir das Produkt nicht mehr minimieren können.

Methode

Lass uns nun zwei verschiedene Methoden besprechen −

Methode 1: Integrierte Funktionen verwenden

  • Die erste Methode beinhaltet die Verwendung der integrierten Sortier- und Swap-Funktionen in C++.

  • Zwei Arrays initialisieren oder eingeben.

  • Die Verwendung der Funktion sort() ist ein nützliches Werkzeug, um den Inhalt eines Arrays in aufsteigender Reihenfolge zu sortieren.

  • Finden Sie das größte Element (letztes Element nach der Sortierung) in zwei Arrays.

  • Wenn das größte Element im ersten Array größer als das größte Element im zweiten Array ist, verwenden Sie die Funktion swap(), um Elemente auszutauschen.

  • Setzen Sie diesen Vorgang fort, bis das Produkt nicht mehr weiter minimiert werden kann.

Beispiel

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

void minimizeProduct(int a[], int b[], int n) {
   sort(a, a + n);
   sort(b, b + n);
    
   for (int i = n - 1; i >= 0; --i) {
      if (a[i] > b[i])
         swap(a[i], b[i]);
      else
         break;
   }
    
   cout << "Product of maximums: " << a[n - 1] * b[n - 1] << endl;
}

int main() {
   int a[] = {5, 7, 9, 3, 6};
   int b[] = {1, 2, 6, 8, 0};
   int n = sizeof(a)/sizeof(a[0]);

   minimizeProduct(a, b, n);
    
   return 0;
}
Nach dem Login kopieren

Ausgabe

Product of maximums: 72
Nach dem Login kopieren
Nach dem Login kopieren
Die chinesische Übersetzung von

Erklärung

lautet:

Erklärung

Diese Methode verwendet die #include-Direktive, um Bibliotheken hinzuzufügen, bevor die Aufgabe ausgeführt wird. Die Definition des std-Namespace zu Beginn vereinfacht den Aufruf von Standardbibliotheksfunktionen und vermeidet langwierige Anweisungen. Geben Sie die Funktion minimProduct ein, die die beiden Eingabearrays und ihre Größen als Parameter enthält.

Im weiteren Verlauf werden diese Arrays mit der integrierten Methode sort() in aufsteigender Reihenfolge sortiert und anschließend eine for-Schleife gestartet, in der die größten Elemente im ersten und zweiten Array verglichen werden.

Wenn das größte Element im ersten Array größer als das zweite Array ist, tauschen Sie die Elemente aus, um der Lösung näher zu kommen. Drucken Sie das Produkt mit dem neu ausgetauschten Maximum-Element. Integrierte Funktionen wie sort() und swap() helfen dabei, dies problemlos zu erreichen. Der Aufruf von minimProduct in main() gibt 0 zurück, um den Erfolg anzuzeigen.

Methode 2: Integrierte Funktionen nicht verwenden

Diese Technik kann in Situationen Vorteile bringen, in denen eingebettete Funktionen nicht möglich sind. Anstatt voreingestellte Sortier- und Austauschfunktionen zu verwenden, erstellen wir unsere individuellen Variationen.

  • Zwei Arrays initialisieren oder eingeben.

  • Implementieren Sie eine Sortierfunktion, um zwei Arrays in aufsteigender Reihenfolge zu sortieren.

  • Finden Sie das größte Element (letztes Element nach der Sortierung) in zwei Arrays.

  • Wenn das größte Element im ersten Array größer ist als das größte Element im zweiten Array, verwenden Sie eine benutzerdefinierte Swap-Funktion, um die Elemente auszutauschen.

  • Wiederholen, bis Sie das Produkt nicht mehr reduzieren können.

Beispiel

#include<iostream>
using namespace std;

void sortArray(int arr[], int n) {
   for(int i = 0; i < n; ++i) {
      for(int j = i+1; j < n; ++j) {
         if(arr[i] > arr[j]) {
            int temp = arr[i];
            arr[i] = arr[j];
            arr[j] = temp;
         }
      }
   }
}

void minimizeProduct(int a[], int b[], int n) {
   sortArray(a, n);
   sortArray(b, n);
    
   for (int i = n - 1; i >= 0; --i) {
      if (a[i] > b[i]) {
         int temp = a[i];
         a[i] = b[i];
         b[i] = temp;
      } else {
         break;
      }
   }
    
   cout << "Product of maximums: " << a[n - 1] * b[n - 1] << endl;
}

int main() {
   int a[] = {5, 7, 9, 3, 6};
   int b[] = {1, 2, 6, 8, 0};
   int n = sizeof(a)/sizeof(a[0]);

   minimizeProduct(a, b, n);
    
   return 0;
}
Nach dem Login kopieren

Ausgabe

Product of maximums: 72
Nach dem Login kopieren
Nach dem Login kopieren
Die chinesische Übersetzung von

Erklärung

lautet:

Erklärung

Bei einem anderen Ansatz verzichten wir auf die Verwendung der integrierten Funktionen und implementieren stattdessen die Sortier- und Austauschvorgänge manuell. Wir schreiben zunächst eine neue Funktion namens „sortArray“, die verschachtelte for-Schleifen verwendet, um Elemente in der gewünschten Reihenfolge zu vergleichen und auszutauschen, wenn ein Array als Eingabe gegeben wird. In „minimizeProduct“ werden beide angegebenen Arrays vor Beginn der Iteration ähnlich sortiert. Anschließend beginnen wir mit der Iteration am rechten Ende und tauschen die entsprechenden Elemente bei Bedarf aus – nur in jeder Phase der Iteration, im ersten Array werden nur die Elemente von ausgetauscht Wenn sie in Spaltenrichtung größer sind als die Elemente im zweiten Array, wird durch diesen Vorgang schließlich das Produkt der Maximalwerte ermittelt und als Ergebnis auf der Ausgabekonsole ausgegeben. In „main()“ wird dieser „Produkt minimieren“-Vorgang angewendet, indem voreingestellte Werte über zwei bereits vorhandene Arrays übergeben werden.

Fazit

Der maximale ganzzahlige Wert in zwei angegebenen Arrays kann durch die Verwendung eines C++-Programms gemäß der hier beschriebenen Methode erheblich reduziert werden. Diese Reduzierung wird durch geschickte Elementaustauschtechniken erreicht. Darüber hinaus ermöglicht dieser Ansatz ein tieferes Verständnis mehrerer Strategien zur Array-Manipulation – er verdeutlicht, wie personalisierte Funktionen einander ergänzen, wenn sie zusammen mit vorgefertigten Optionen verwendet werden. Es ist wichtig zu bedenken, dass die Entscheidung, welche Methode am besten geeignet ist, in erster Linie von den Einschränkungen und dem gesamten Rechenpotenzial jedes Problems abhängt. Aufgrund dieser Überlegungen ist es wichtig, dass Sie bei der Verbesserung Ihrer Programmierkenntnisse nicht in Frustration verfallen.

Das obige ist der detaillierte Inhalt vonMinimieren Sie das Produkt der größten Zahlen in zwei Arrays mithilfe von Swap. 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