JavaScript陣列中最大值和最小值之差
在這個問題中,我們必須建立一個演算法,利用JavaScript的功能來獲取陣列中最大值和最小值之差。因此,我們將使用for迴圈和將最大值和最小值初始化為Infinity來解決這個問題。
理解問題的邏輯
問題陳述要求編寫程式碼來獲取陣列中最大值和最小值之差。
因此,為了解決這項任務,我們將初始化兩個變數,這兩個變數將儲存最大值和最小值。然後,使用迴圈遍歷陣列的每個元素。然後,我們將檢查該元素是否大於當前最大值,並根據需要進行更新。然後檢查最小值並根據需要更新。獲得這兩個值後,我們將計算它們之間的差值,這就是所需的結果。
例如:如果我們有一個數組[1, 2, 3, 4, 5, 6],我們可以看到在這個陣列中,最大元素是6,最小元素是1,這兩個值之間的差是6 - 1 = 5。因此,最終輸出將是5。
演算法
以下是演算法的逐步過程
步驟1:初始化兩個變數,用於儲存陣列的最大值和最小值。並將值設定為-Infinity和Infinity。這些值表示比陣列中任何其他數字都小和大的保證值。
步驟2:使用for迴圈遍歷陣列的每個專案。對於陣列中的每個元素,我們將檢查該元素是否大於當前最大值。如果此條件為真,則更新最大值的新值。
步驟3:並檢查該元素是否小於當前最小值,然後更新為最小值的新值。
步驟4:透過從最大值中減去最小值來計算最大值和最小值之間的差值。並將此值儲存在另一個變數中,並將其命名為difference。
步驟5:最後,使用console.log語句將最大值、最小值和差值作為輸出顯示到控制檯中。
示例
//define array const array = [1, 5, 10, 2, 4, 6, 9]; //define highest and lowest values let highest = -Infinity; let lowest = Infinity; //iterate the array elements for (let i = 0; i < array.length; i++) { if (array[i] > highest) { highest = array[i]; } if (array[i] < lowest) { lowest = array[i]; } } //difference between highest and lowest const difference = highest - lowest; console.log("Highest value:", highest); console.log("Lowest value:", lowest); console.log("Difference:", difference);
輸出
Highest value: 10 Lowest value: 1 Difference: 9
複雜度
使用給定過程獲取陣列中最大值和最小值之差的複雜度為O(n),其中n是給定陣列元素的長度。因為演算法一次遍歷陣列的元素並比較當前最大值和最小值。因此,迭代次數與陣列中的元素數量成正比,因此最終複雜度為線性。
結論
我們可以透過使用for迴圈迭代陣列元素來解決給定的問題。並找到陣列中的最大值和最小值,計算這兩個值之間的差值。並在控制檯中顯示所需的結果。