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循环迭代数组元素来解决给定的问题。并找到数组中的最大值和最小值,计算这两个值之间的差值。并在控制台中显示所需的结果。

更新于:2023年8月14日

446 次浏览

启动您的职业生涯

完成课程获得认证

开始
广告