zoukankan      html  css  js  c++  java
  • php 二分查找

    <?php
    /**二分查找:查找一个值在数组中的位置
    * @$arr:操作的数组,前提是按顺序排列
    * @$val:查找的值
    * @$start:查找的起始位置,默认从数组的第一个数找起
    * @$end:查找的结束位置
    **/
    function binarySearch($arr, $val, $end, $start=0){
        while($start <= $end){
            $mid = ceil($start + ($end - $start) / 2);
            if($arr[$mid] == $val){
                return $mid;
            }elseif($arr[$mid] > $val){
                $end = $mid -1;
            }else{
                $start = $mid +1;
            }
        }
        return -1;   //这里的-1,是表示如果不在数组范围的时候,所返回的值
    }
    

    header('Content-Type:text/html; charset=utf-8');
    //产生一个数组 $arr = range(10,20); echo '<pre>'; print_r($arr); echo '</pre>'; $start = 0; $end = count($arr) - 1; $findVal = rand(10,20 ); $index = binarySearch($arr, $findVal, $end, $start); printf("查找的值 '%d' 在数组中的下标 '%s'", $findVal, $index); ?>
  • 相关阅读:
    Java基础面试题附答案 81-100(五)
    css练习--抽屉作业
    css
    HTML 快速入门
    selectors 模块完成文件上传下载功能
    IO 模型
    进程 线程 协程
    socket套接字
    异常处理
    面向对象
  • 原文地址:https://www.cnblogs.com/wicub/p/3235039.html
Copyright © 2011-2022 走看看