zoukankan      html  css  js  c++  java
  • 二分查询

    ?<?php/**二分查找:查找一个值在数组中的位置* @$arr:操作的数组,前提是按顺序排列* 
    @$val:查找的值*
    @$low:查找的起始位置,默认从数组的第一个数找起*
    @hight:查找的结束位置*
    */

    function binarySearch($arr, $val, $hight, $low=0){

    while($low <= $hight){

    $mid = ceil($low + ($hight - $low) / 2);

    if($arr[$mid] == $val){

    return $mid;
    }elseif($arr[$mid] > $val){
    $hight = $mid -1;
    }else{
    $low = $mid +1;
    } }

    return -1;}

    header('Content-Type:text/html; charset=utf-8');

    //产生一个数组
    $arr = range(0,20);
    echo '<pre>';print_r($arr);echo '</pre>';
    $low = 0;$hight = count($arr) - 1
    ;$findVal = rand(0, 20);$index = binarySearch($arr, $findVal, $hight, $low);
    printf("查找的值 '%d' 在数组中的下标 '%s'", $findVal, $index);
    ?>
  • 相关阅读:
    vue 短期时间
    使用moment.js写一个倒计时
    使用moment.js
    js 共用文件内容应用
    什么是闭包?闭包的优缺点?
    卧龙阶段
    音阶
    初步理解1=C
    认识简谱的构造,唱名,音名

  • 原文地址:https://www.cnblogs.com/wuheng1991/p/5966232.html
Copyright © 2011-2022 走看看