JS中大型数组的最大值/最小值

Ale*_*sky 2 javascript

我需要计算大型数组的最小值/最大值。我知道Math.max.apply(),但是在大型阵列上,它会出现堆栈溢出异常而失败。任何简单的解决方案?

Nik*_*tev 5

  1. 使用sort()方法对数组进行排序,使用quicksort算法对数组进行排序
  2. 由于数组按升序排序,因此最后一个元素是最大

    var arr = [1,4,6,4 ....

    arr.sort();

    var max = arr [arr.length-1];

  • 您的回答让我感到自己真的很愚蠢:(。实际上,我已经对数组进行了排序。这就是为什么要进行代码审查的原因... (2认同)
  • 无论如何,只有对数组进行一些二进制搜索[O(log n)]时,才值得对数组进行排序。如果要获得最大值和最小值,则最好遍历每个元素,因为O(n)比O(n log n)快。对于许多大型阵列,这可能很重要... (2认同)