Rumah  >  Artikel  >  hujung hadapan web  >  Program JavaScript untuk mencari nilai maksimum dan minimum dalam matriks persegi

Program JavaScript untuk mencari nilai maksimum dan minimum dalam matriks persegi

WBOY
WBOYke hadapan
2023-09-02 23:21:021349semak imbas

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

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.

Pengenalan kepada masalah

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 -

Kaedah naif

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.

Contoh

// 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 dan ruang

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 yang lebih berkesan

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 -

Contoh

// 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 dan ruang

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).

Kesimpulan

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!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam