Heim > Artikel > Web-Frontend > JavaScript-Programm zum Ermitteln der Maximal- und Minimalwerte in einer quadratischen Matrix
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.
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 -
istMat = [ 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 -
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.
// 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)
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.
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 -
// 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)
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).
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!