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); ?>
  • 相关阅读:
    k近邻算法
    密码技术小总结
    编码的简单总结
    icmp dos和arp dos 攻击模拟实验
    WPA简单抓包分析
    Iptables实验
    Rabin简单加解密
    response响应数据
    浮动——小米手机案例
    ServletRequest请求详解
  • 原文地址:https://www.cnblogs.com/wicub/p/3235039.html
Copyright © 2011-2022 走看看