JavaScript 程式求方陣中的最大值和最小值
要找到最大或最小元素,我們必須專注於要進行的比較次數以及選擇哪種方法進行比較最有效:使用if-else 語句比較元素的方法還是使用if- else 語句比較元素的方法作為內建的。我們將看到完整的程式碼實作和解釋。在本文中,我們將實作一個 JavaScript 程序,用於計算給定方陣中存在的最大和最小元素。
問題簡介
這個問題很簡單,但是深入研究會帶來一些值得學習的突出概念。
在這個問題中,我們得到一個矩陣,對於這個矩陣,我們必須找到其中存在的最大和最小元素。例如,如果矩陣是 -
Mat = [ 1, 3, 7, 5, 2, 9, 2, 5, 1]
從上面的矩陣中,我們可以說 1 是最小或最小元素,而 9 是最大或最大元素。
讓我們透過程式碼實作來看看解決這個問題的方法 -
天真的方法
在這個方法中,我們將簡單地一次遍歷所有元素並檢查它們是否大於我們目前的元素。將遵循以下步驟 -
首先,我們將建立一個函數來傳遞不同的矩陣並取得結果
對於給定的矩陣,我們將取得其行和列,以便使用 for 迴圈遍歷它。
我們將建立兩個變數來儲存最小和最大元素,並假設矩陣的元素小於等於此值,並將它們初始化為最小元素 1000000000。
此外,我們將假設矩陣的元素大於或等於此值,從而將最大元素初始化為 -1000000000。
使用 for 循環,我們將遍歷矩陣,對於每個索引,我們將使用兩個 if-else 條件。
透過進行所需的比較,我們將更新最大值和最小值。
範例
// 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)
時間與空間複雜度
上述程式碼的時間複雜度為O(N*M),其中N和M分別是行和列。另外,空間複雜度為O(1)。
這裡的主要問題不是時間複雜度,而是我們進行比較的次數。在上面的程式碼中,我們進行了 N * M * 2 次比較,因為對於每個索引,我們都檢查了最小和最大元素。
比較有效的方法
此方法在大部分部分與上述方法類似,但對於比較部分,我們現在將透過更新一些 if-else 語句進行 3/2 * N* M 比較。讓我們看看程式碼 -
範例
// 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)
時間與空間複雜度
上述程式碼的時間複雜度為O(N*M),其中N和M分別是行和列。另外,空間複雜度為O(1)。
這裡的比較次數比之前少了,現在是 3/2 * (N*M)。
結論
在本教程中,我們將實作一個 JavaScript 程序,用於計算給定方陣中存在的最大和最小元素。我們遍歷了給定的矩陣,並將每個元素與儲存答案的變數進行比較。討論了兩種技術:一種的比較次數為 2*N*M,另一種的比較次數為 3/2 *N*M,但這兩種方法具有相同的空間複雜度。
以上是JavaScript 程式求方陣中的最大值和最小值的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

JavaScript是現代Web開發的基石,它的主要功能包括事件驅動編程、動態內容生成和異步編程。 1)事件驅動編程允許網頁根據用戶操作動態變化。 2)動態內容生成使得頁面內容可以根據條件調整。 3)異步編程確保用戶界面不被阻塞。 JavaScript廣泛應用於網頁交互、單頁面應用和服務器端開發,極大地提升了用戶體驗和跨平台開發的靈活性。

Python和JavaScript開發者的薪資沒有絕對的高低,具體取決於技能和行業需求。 1.Python在數據科學和機器學習領域可能薪資更高。 2.JavaScript在前端和全棧開發中需求大,薪資也可觀。 3.影響因素包括經驗、地理位置、公司規模和特定技能。

如何在JavaScript中將具有相同ID的數組元素合併到一個對像中?在處理數據時,我們常常會遇到需要將具有相同ID�...

學習JavaScript不難,但有挑戰。 1)理解基礎概念如變量、數據類型、函數等。 2)掌握異步編程,通過事件循環實現。 3)使用DOM操作和Promise處理異步請求。 4)避免常見錯誤,使用調試技巧。 5)優化性能,遵循最佳實踐。

實現視差滾動和元素動畫效果的探討本文將探討如何實現類似資生堂官網(https://www.shiseido.co.jp/sb/wonderland/)中�...

JavaScript的最新趨勢包括TypeScript的崛起、現代框架和庫的流行以及WebAssembly的應用。未來前景涵蓋更強大的類型系統、服務器端JavaScript的發展、人工智能和機器學習的擴展以及物聯網和邊緣計算的潛力。

深入探討console.log輸出差異的根源本文將分析一段代碼中console.log函數輸出結果的差異,並解釋其背後的原因。 �...
