<?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 = findIndex($arr, $findVal, $hight, $low);
printf("查找的值 '%d' 在数组中的下标 '%s'", $findVal, $index);
?>

转载于:https://www.cnblogs.com/lltong/archive/2012/07/09/2582452.html

php二分查找法实例相关推荐

  1. java二分查找法_java算法之二分查找法的实例详解

    java算法之二分查找法的实例详解 原理 假定查找范围为一个有序数组(如升序排列),要从中查找某一元素,如果该元素在此数组中,则返回其索引,否则返回-1.通过数组长度可取出中间位置元素的索引,将其值与 ...

  2. binarysearch java,java数据结构之二分查找法 binarySearch的实例

    java数据结构之二分查找法 binarySearch的实例 折半查找法,前提是已经排好序的数组才可查找 实例代码: public class BinarySearch { int[] bArr; p ...

  3. php二分查找例题,PHP实现的二分查找算法实例分析

    本文实例讲述了PHP实现的二分查找算法.分享给大家供大家参考,具体如下: 二分查找法需要数组是一个有序的数组 假设我们的数组是一个递增的数组,首先我们需要找到数组的中间位置. 一.要知道中间位置就需要 ...

  4. NTC测温中 经典温度查表算法--二分查找法

    说明: 二分查找法的优点:查找速度快 1024个长度的表最长只需10次查表就能得出结果 在用NTC测试温度的方案中,NTC的温度表的长度一般是100-200 有些达到400-500的长度 在这种情况下 ...

  5. 二分查找法的递归和非递归实现(C++)

    文章目录 1.二分查找法思想 2.算法使用前提 3.递归实现(C++) 4.非递归实现(C++) 1.二分查找法思想 折半查找法也称为二分查找法,它充分利用了元素间的次序关系,采用分治策略,可在最坏的 ...

  6. javascript数据结构与算法---检索算法(二分查找法、计算重复次数)

    javascript数据结构与算法---检索算法(二分查找法.计算重复次数) /*只需要查找元素是否存在数组,可以先将数组排序,再使用二分查找法*/ function qSort(arr){if (a ...

  7. java 二分查找_计算机入门必备算法——二分查找法

    1.引言 笔者对于计算机的研究一直停滞不前,近期想对一些算法进行复习和进一步的研究,每天都会更新一个新的算法,算法有难有易,层层递进.不希望能学的有多么高深,只希望在一些最基本的算法上有编码的思路,或 ...

  8. 每天5分钟玩转python3算法:二分查找法

    从今天开始,博主准备开始一段常见算法的学习,算法实现使用Python3,希望坚持下去^_^ alg1:二分查找法 1.运行时间 二分查找相比于依次查找,查询速度提升明显: + 依次查找:O(n) + ...

  9. java for循环和数组--冒泡排序、二分查找法

    //100以内与7相关的数 for(int a=1;a<=100;a++){     if(a%7==0||a%10==7||a/10==7){      System.out.print(a+ ...

  10. 学习练习 java 二分查找法

    1 package com.hanqi; 2 3 import java.util.*; 4 5 public class Test5 { 6 7 public static void main(St ...

最新文章

  1. 相关分析在微生物生态学中的应用与误用
  2. Node和java和php,服务端I/O性能大比拼:Node、PHP、Java和Go(三)
  3. VC++ 定时器基本使用
  4. typescript利用接口类型声明变量_TypeScript入门指南(基础篇)
  5. android 避内存溢出,Android避免内存溢出(Out of Memory)方法总结
  6. 《剑指offer》二维数组中的查找
  7. 超过50万的存款,该放同一个银行还是多个银行?
  8. 简单音乐播放实例的实现,Android Service AIDL 远程调用服务
  9. finding the way
  10. [Android Security] DEX文件格式分析
  11. where 1=1 是什么鬼?SQL中有这玩意?
  12. C++11多线程中的detach()、join()、joinable()
  13. GO程序设计语言学习笔记
  14. HTML表格制作学习提示
  15. 大多数人奋斗一辈子才能得到的东西,你见过吗?
  16. 【看看这长尾效应】长尾效应综述
  17. pytorch深度学习_用于数据科学家的深度学习的最小pytorch子集
  18. 正则html在线测试,正则作业.html
  19. Java通过webcam-capture调用摄像头并截图
  20. 离散数学1_第1章_复合命题与联结词

热门文章

  1. kubernetes视频教程笔记 (26)-集群调度-节点亲和性
  2. postman的参数params如何设置数组和对象参数
  3. linux php gmagick,Linux下编译安装GraphicsMagick及PHP扩展gmagick
  4. 2021-04-03
  5. Acwing 1243 糖果 - IDA*估值函数
  6. 年轻人不讲武德,竟然重构出这么优雅后台 API 接口
  7. 适配器模式之状态模式
  8. Android VideoVIew 视频全屏拉伸
  9. java第二季_Java入门第二季
  10. 写shell工具类,一个常用实例