博客
关于我
PHP查找数组中最大值与最小值
阅读量:794 次
发布时间:2023-03-01

本文共 787 字,大约阅读时间需要 2 分钟。

$arr[$i + 1]) { $bigger = $arr[$i]; $smaller = $arr[$i + 1]; } else { $bigger = $arr[$i + 1]; $smaller = $arr[$i]; } $cmpTime++; if ($bigger > $biggest) { $biggest = $bigger; } $cmpTime++; if ($smaller < $smallest) { $smallest = $smaller; } } echo "ArrLeng: " . $count . "
"; echo "CmpTime: " . $cmpTime . "
"; echo "Big: " . $biggest . "
"; echo "Small: " . $smallest . "
";}$arr = array(4, 6, 8, 1, 5, 4, 3, 9, 11, 3, 22, 100, 55, 0, 4, -1, 31, 210, -10);maxMin($arr);?>

这段代码展示了一个用于查找数组最大值和最小值的函数。传统的线性扫描方法可能需要2n次比较,而该方法通过优化比较次数,将复杂度降低到1.5n次。

以下是改进后方法的详细解释:

  • 初始化:函数首先初始化$biggest$smallest为数组最后一个元素,假设数组至少包含一个元素。

  • 双重循环比较:从数组第一个元素开始,每次取出两个相邻元素进行比较:

    • 如果第一个元素大于第二个,记为$bigger$smaller
    • 否则,交换它们的值,$bigger$smaller分别取较大的和较小的。
  • 更新最大最小值:在每次比较后,更新当前找到的最大值和最小值。

  • 这种方法通过同时跟踪最大和最小值,减少了比较次数,使算法更加稳定且效率更高。

    转载地址:http://tttfk.baihongyu.com/

    你可能感兴趣的文章