Heim  >  Artikel  >  Web-Frontend  >  JavaScript-Programm zum Ermitteln der Maximal- und Minimalwerte in einer quadratischen Matrix

JavaScript-Programm zum Ermitteln der Maximal- und Minimalwerte in einer quadratischen Matrix

WBOY
WBOYnach vorne
2023-09-02 23:21:021389Durchsuche

JavaScript 程序求方阵中的最大值和最小值

Um das größte oder kleinste Element zu finden, müssen wir uns auf die Anzahl der durchzuführenden Vergleiche konzentrieren und darauf, welche Vergleichsmethode am effizientesten ist: die Methode zum Vergleichen von Elementen mithilfe von if-else-Anweisungen oder die Vergleichsmethode Elemente, die if-else-Anweisungen als integrierte Elemente verwenden. Wir werden die vollständige Code-Implementierung und Erklärung sehen. In diesem Artikel implementieren wir ein JavaScript-Programm, das die größten und kleinsten Elemente einer bestimmten quadratischen Matrix berechnet.

Einführung in das Problem

Diese Frage ist einfach, aber wenn man tiefer eintaucht, werden einige herausragende Konzepte zum Vorschein kommen, die es wert sind, gelernt zu werden.

In diesem Problem erhalten wir eine Matrix, für die wir das darin enthaltene maximale und minimale Element finden müssen. Wenn die Matrix beispielsweise -

ist
Mat = [ 1, 3, 7,
   5, 2, 9, 
   2, 5, 1]

Aus der obigen Matrix können wir sagen, dass 1 das minimale oder minimale Element und 9 das maximale oder maximale Element ist.

Sehen wir uns an, wie wir dieses Problem durch Codeimplementierung lösen können -

Naive Methode

Bei dieser Methode durchlaufen wir einfach alle Elemente auf einmal und prüfen, ob sie größer als unser aktuelles Element sind. Die folgenden Schritte werden befolgt -

  • Zuerst erstellen wir eine Funktion, um verschiedene Matrizen zu übergeben und das Ergebnis zu erhalten

  • Für eine gegebene Matrix holen wir uns ihre Zeilen und Spalten, um sie mit einer for-Schleife zu durchlaufen.

  • Wir erstellen zwei Variablen zum Speichern der minimalen und maximalen Elemente und gehen davon aus, dass die Elemente der Matrix kleiner oder gleich diesem Wert sind, und initialisieren sie auf das minimale Element 1000000000.

  • Zusätzlich werden wir das maximale Element auf -1000000000 initialisieren, vorausgesetzt, die Elemente der Matrix sind größer oder gleich diesem Wert.

  • Mithilfe einer for-Schleife durchlaufen wir die Matrix und verwenden für jeden Index zwei if-else-Bedingungen.

  • Durch die erforderlichen Vergleiche aktualisieren wir die Maximal- und Minimalwerte.

Beispiel

// creating a function to get the minimum and maximum number
function min_max(matrix){

   // getting rows and columns of given matrix
   var rows = matrix.length
   var cols = matrix[0].length
   var min_ans = 1000000000
   var max_ans = -1000000000
   
   // traversing over the matrix
   for(var i = 0; i<rows; i++){
      for(var j = 0; j<cols; j++){
         if(min_ans > matrix[i][j]){
            min_ans = matrix[i][j];
         }
         if(max_ans < matrix[i][j]) {
            max_ans = matrix[i][j];
         }
      }
   }
   console.log("The maximum element present in the Matrix is: " + max_ans);
   console.log("The minimum element present in the Matrix is: " + min_ans);
}

// defining the matrix
Mat = [ [1, 3, 7],
[5, 2, 9],
[2, 5, 1] ]

// calling the function
min_max(Mat)

Zeitliche und räumliche Komplexität

Die zeitliche Komplexität des obigen Codes beträgt O(N*M), wobei N und M jeweils Zeilen und Spalten sind. Darüber hinaus beträgt die Raumkomplexität O(1).

Das Hauptproblem hierbei ist nicht die zeitliche Komplexität, sondern die Anzahl der Vergleiche, die wir durchführen. Im obigen Code führen wir N * M * 2 Vergleiche durch, da wir für jeden Index die minimalen und maximalen Elemente überprüfen.

Eine effektivere Methode

Diese Methode ähnelt in den meisten Teilen der oben genannten Methode, aber für den Vergleichsteil werden wir jetzt 3/2 * N* M-Vergleiche durchführen, indem wir einige if-else-Anweisungen aktualisieren. Schauen wir uns den Code an -

Beispiel

// creating a function to get the minimum and maximum number
function min_max(matrix){

   // getting rows and columns of given matrix
   var rows = matrix.length
   var cols = matrix[0].length
   var min_ans = 1000000000
   var max_ans = -1000000000
   
   // traversing over the matrix
   for(var i = 0; i<rows; i++){
      for(var j = 0; j<=cols/2; j++){
         if (matrix[i][j] > matrix[i][rows - j - 1]){
            if (min_ans > matrix[i][cols - j - 1])
            min_ans = matrix[i][cols - j - 1];
            if (max_ans< matrix[i][j])
            max_ans = matrix[i][j];
         } else {
            if (min_ans > matrix[i][j])
            min_ans = matrix[i][j];
            if (max_ans < matrix[i][cols - j - 1])
            max_ans = matrix[i][cols - j - 1];
         }
      }
   }
   console.log("The maximum element present in the Matrix is: " + max_ans);
   console.log("The minimum element present in the Matrix is: " + min_ans);
}
// defining the matrix
Mat = [ [1, 3, 7],
[5, 2, 9],
[2, 5, 1] ]
// calling the function
min_max(Mat)

Zeitliche und räumliche Komplexität

Die zeitliche Komplexität des obigen Codes beträgt O(N*M), wobei N und M jeweils Zeilen und Spalten sind. Darüber hinaus beträgt die Raumkomplexität O(1).

Die Anzahl der Vergleiche ist hier geringer als zuvor, jetzt 3/2 * (N*M).

Fazit

In diesem Tutorial implementieren wir ein JavaScript-Programm, das die maximalen und minimalen Elemente berechnet, die in einer bestimmten quadratischen Matrix vorhanden sind. Wir durchlaufen die gegebene Matrix und vergleichen jedes Element mit der Variablen, die die Antwort speichert. Es werden zwei Techniken besprochen: eine mit 2*N*M-Vergleichen und die andere mit 3/2*N*M-Vergleichen, aber beide Methoden haben die gleiche räumliche Komplexität.

Das obige ist der detaillierte Inhalt vonJavaScript-Programm zum Ermitteln der Maximal- und Minimalwerte in einer quadratischen Matrix. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen