Rumah >hujung hadapan web >tutorial js >Program JavaScript untuk mencari nilai maksimum dan minimum dalam matriks persegi
Untuk mencari elemen terbesar atau terkecil, kita perlu memberi tumpuan kepada bilangan perbandingan yang perlu dibuat dan kaedah mana yang hendak dipilih untuk perbandingan adalah paling berkesan: kaedah membandingkan elemen menggunakan pernyataan if-else atau kaedah membandingkan elemen menggunakan pernyataan if-else sebagai terbina dalam. Kami akan melihat pelaksanaan dan penjelasan kod lengkap. Dalam artikel ini, kami akan melaksanakan program JavaScript yang mengira elemen terbesar dan terkecil yang terdapat dalam matriks segi empat sama tertentu.
Soalan ini mudah, tetapi menyelidiki lebih mendalam akan membawa beberapa konsep cemerlang yang patut dipelajari.
Dalam masalah ini kita diberikan matriks yang mana kita perlu mencari unsur maksimum dan minimum yang terdapat di dalamnya. Contohnya, jika matriks ialah -
Mat = [ 1, 3, 7, 5, 2, 9, 2, 5, 1]
Daripada matriks di atas, kita boleh mengatakan bahawa 1 ialah elemen minimum atau minimum dan 9 ialah elemen maksimum atau maksimum.
Mari kita lihat cara menyelesaikan masalah ini melalui pelaksanaan kod -
Dalam kaedah ini, kami hanya akan mengulangi semua elemen sekaligus dan menyemak sama ada ia lebih besar daripada elemen semasa kami. Langkah-langkah berikut akan diikuti -
Mula-mula kita akan mencipta fungsi untuk melepasi matriks yang berbeza dan mendapatkan hasilnya
Untuk matriks tertentu, kami akan mendapatkan baris dan lajurnya untuk mengulanginya menggunakan gelung for.
Kami akan mencipta dua pembolehubah untuk menyimpan elemen minimum dan maksimum dan menganggap bahawa elemen matriks adalah kurang daripada atau sama dengan nilai ini dan memulakannya kepada elemen minimum 1000000000.
Selain itu, kami akan memulakan elemen maksimum kepada -1000000000 dengan mengandaikan elemen matriks lebih besar daripada atau sama dengan nilai ini.
Menggunakan gelung for, kami akan melelar melalui matriks dan untuk setiap indeks kami akan menggunakan dua syarat if-else.
Dengan membuat perbandingan yang diperlukan, kami akan mengemas kini nilai maksimum dan minimum.
// 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)
Kerumitan masa kod di atas ialah O(N*M), di mana N dan M ialah baris dan lajur masing-masing. Di samping itu, kerumitan ruang ialah O(1).
Isu utama di sini bukanlah kerumitan masa, tetapi bilangan perbandingan yang kami buat. Dalam kod di atas, kami melakukan perbandingan N * M * 2 kerana untuk setiap indeks kami menyemak elemen minimum dan maksimum.
Kaedah ini serupa dengan kaedah di atas dalam kebanyakan bahagian, tetapi untuk bahagian perbandingan, kami kini akan melakukan perbandingan 3/2 * N* M dengan mengemas kini beberapa pernyataan if-else. Mari lihat kod -
// 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)
Kerumitan masa kod di atas ialah O(N*M), di mana N dan M ialah baris dan lajur masing-masing. Di samping itu, kerumitan ruang ialah O(1).
Jumlah perbandingan di sini kurang daripada sebelumnya, kini 3/2 * (N*M).
Dalam tutorial ini, kami akan melaksanakan program JavaScript yang mengira unsur maksimum dan minimum yang terdapat dalam matriks segi empat sama. Kami mengulangi matriks yang diberikan dan membandingkan setiap elemen dengan pembolehubah yang menyimpan jawapan. Dua teknik dibincangkan: satu dengan perbandingan 2*N*M dan satu lagi dengan perbandingan 3/2*N*M, tetapi kedua-dua kaedah mempunyai kerumitan ruang yang sama.
Atas ialah kandungan terperinci Program JavaScript untuk mencari nilai maksimum dan minimum dalam matriks persegi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!