Title

PHP基础算法 (折半查找)

  • 作者:Mr_Yan
  • php
  • 时间:2019-03-25 10:52:22
  • 1070人已阅读
php


 定义方法 ;折半查找 条件 必须是有序数组 返回值,索引 参数 数组,被找的元素 实现步骤 

  1.需要的变量;三个指针 min 小 max 大 mid 中

  

  2.进行循环折半 折半条件 min<=max

  

  3.让被找元素 与中间元素进行比较

  

  元素>中间 min=mid+1 元素<中间 max=mid-1 元素=中间 结束 返回中间索引

 

 4.循环结束 无法折半 元素未找到返回-1

$arr=array(1,2,3,4,5,6,7,8,9);
echo "<pre>";
var_dump($arr);

$key=8;
       // 定义三个变量
       $min = 0;
     $max = count($arr)-1;
     $mid = 0;
     // 循环折半 条件
     while ($min <= $max) {
           $mid = ($min + $max) / 2;


           if ($key > $arr[$mid])
           {

               $min = $mid + 1;
           }
           else if ($key < $arr[$mid])
           {
               $max = $mid - 1;
           }
           else
           {
            //找到元素 返回元素索引
             $idnex = floor($mid);//向下取整
            echo "<br>{$key}值的下标为{$idnex}";

            return 1;
           }

       }


结果演示

image.png

本文为MrYan原创文章,转载无需和我联系,但请注明来自MrYan个人博客:www.mryan888.com

文章评论

Top