数组中两个值之间的最大/最大差异

时间:2012-06-21 19:33:08

标签: php arrays

所以,我需要找出索引数组的任意两个随机值之间可能存在的最大差异,我不确定我的答案是否正确,因为你知道这对于这个问题的重要性来说太简单了:

function($array)
{
 asort($array); 
 $diff = $array(sizeof($array) - 1) - $array(0);
 return $diff; 
}

我确信这是正确的,然后我再次怀疑!

2 个答案:

答案 0 :(得分:1)

你是对的,你会发现最大的差异在最大值和最小值之间。但是,您可以通过简单地扫描数组来查找最小值和最大值而无需排序,从而更有效地实现这一目标(O(N)而不是O(N log N))。

答案 1 :(得分:1)

只是围绕着逻辑,这是一种手动方式:

$myarray = array(
  'this' => 2, 
  'that' => 14, 
  'them' => -5, 
  'other' => 200, 
  'nothing' => 42, 
  'somethingelse' => 1, 
  'you' => 10, 
  'me' => 30);

foreach ($myarray as $key => $value) {
  if (!isset ($min) || $value < $min) { $min = $value; }
  if (!isset ($max) || $value > $max) { $max = $value; }
}

$diff = $max - $min;
echo $diff;