美文网首页
PHP使用二分法查找50出现的位置?

PHP使用二分法查找50出现的位置?

作者: 我爱张智容 | 来源:发表于2021-03-20 22:57 被阅读0次

代码:

第一种方法

$arr = [1,3,5,12,34,45,50];
function binary(array  &$arr,int $low,int $top,int $target){
    while($low<=$top){
        $mid = floor(($low+$top)/2);
        if($arr[$mid] === $target){
            return $mid;
        } elseif($arr[$mid]>$target){
            $top= $mid-1;
        } else if($arr[$mid]<$target){
            $low= $mid+1;
        }
    }
    return -1;
}
$arr = [1,3,5,12,34,45,50];
echo  binary($arr,0,count($arr),50); //6

第二种方法

function binaryRecursive(array  &$arr,int $low,int $top,int $target){
        $mid = floor(($low+$top)/2);
        if ($arr[$mid]>$target){
            return binaryRecursive($arr,$low,$mid-1,$target);
        } elseif ($arr[$mid]<$target){
            return binaryRecursive($arr,$mid+1,$top,$target);
        } else if ($arr[$mid]===$target){
            return $mid;
        } else {
            return -1;
        }
}
$arr = [1,3,5,12,34,45,50];
echo  binaryRecursive($arr,0,count($arr),50); //6

相关文章

  • PHP使用二分法查找50出现的位置?

    代码: 第一种方法 第二种方法

  • 前端-折半插入排序

    折半插入排序先使用二分法查找出该插入的位置, 再进行移动

  • 二分查找

    以二分法来提升查找效率 二分法查找到key的合适位置 put get delete 二分查找的查找操作为O(log...

  • PHP常用函数

    字符串操作 查找字符串出现位置$str = strpos("YouLovePhp!","Php");# 输出7 替...

  • PHP中实现二分法查找的两种方法

    php实现二分法的查找其实很简单,跟我一起来看看怎么实现吧。 二分法查找需要数组是一个递增的数组。 想要写出二分法...

  • ALG----二分法

    当我们要查找一个元素在数组中的位置的时候,我们可以使用二分法查找。使用条件:数组必须是一个有序数组 原理:1.确定...

  • 算法01 - 二分法查找

    二分法查找简介输入:一个"有序"元素列表输出:返回要查找的元素位置,没有这个元素则返回None 使用背景简介假如有...

  • 二分法查找

    二分法查找 : 目的 : 查找一个数组中是否含义某个元素 : 有返回数组中的位置 ,没有返回 -1 算法: 二分法...

  • 二分法查找

    二分法查找 算法:二分法查找适用于数据量较大,但是数据需要先排好序 (1)确定该区间的中间位置k(2)将查找的值T...

  • 冒泡排序、选择排序和二分法查找

    冒泡排序 选择排序 二分法查找 概念 1.使用二分法好处: 可以加快寻找的效率。2.使用二分法特点: 二分法...

网友评论

      本文标题:PHP使用二分法查找50出现的位置?

      本文链接:https://www.haomeiwen.com/subject/gbpgcltx.html