JavaScript 中的絕對值和最小化
在給定的問題陳述中,我們必須藉助 Javascript 功能找到給定陣列中和最小化的絕對值。因此,我們將使用基本的數學方法來解決這個問題。
理解問題
手頭的問題是找到和最小化的絕對值。這是數學和計算機科學中需要解決的基本問題。該程式涉及從給定陣列中找到一個數字,該數字使該數字與陣列中其他項之間的絕對差之和最小。
給定問題的邏輯
為了解決上述問題,我們將使用一種簡單的方法來找到和最小化的絕對值。在這個問題中,我們首先建立一個函式來完成此任務,並在該函式中傳遞一個輸入陣列,我們需要為其找到絕對值。因此,在這個函式中,我們將對給定的陣列進行排序。然後,我們將檢查陣列的長度是偶數還是奇數。如果陣列的長度是奇數,則我們將返回中間元素作為結果。否則,我們將返回索引 (length/2) - 1 處的項。
演算法
步驟 1:因為我們必須找到給定陣列的和最小化的絕對值。所以第一步是定義一個函式來完成給定的任務。並將函式命名為 sumMinimization,在這個函式中,我們將接受一個輸入陣列作為引數。我們將為這個陣列找到絕對值。
步驟 2:定義函式後,我們將首先使用 sort 方法將給定輸入陣列的項按升序排序,並在 sort 方法中使用比較函式將項按升序排列。
步驟 3:因此,在按升序排列專案後,我們將檢查給定輸入陣列的長度。如果陣列的長度為奇數,則所需的值將是中間索引。要獲取中間索引,我們將使用 Math.floor 函式。
步驟 4:如果陣列的長度為偶數,我們將返回 (arr.length/2)-1 索引處的所需項。
步驟 5:最後,我們將提供一個示例用法,其中一個數組將傳遞給建立的函式,並將結果列印到控制檯。
示例
function sumMinimization(arr) { // Sort the array in ascending order arr.sort((a, b) => a - b); // Check if the array length is odd or even if (arr.length % 2 === 1) { // For odd-length array return arr[Math.floor(arr.length / 2)]; } else { // For even-length array return arr[(arr.length / 2) - 1]; } } const array = [1, 2, 3, 4, 5]; const result = sumMinimization(array); console.log(result);
輸出
3
複雜度
查詢和最小化的絕對值的函式的時間複雜度為 O(n log n),其中 n 是陣列的大小。因為我們對陣列進行了排序操作。並且該函式的空間複雜度是常數 O(1),因為我們只使用了陣列的值來獲得結果。
結論
在我們探索了在 Javascript 中查詢絕對值和最小化的問題之後。我們對陣列執行了一些基本操作,例如對偶數和奇數長度進行排序和條件檢查。還使用了一些數學公式來獲取所需的專案。