PHP实现二分法查找
二分查找法需要数组是一个有序的数组。
<?php
function binarySearch($num, $arr) {
	$start = 0;
	$end = count($arr);
	$mid = floor(($start+$end)/2);
	while ($start<$end-1) {
		if ($num == $arr[$mid]) {
			return $mid;
		} elseif ($num < $arr[$mid]) {
			$end = $mid;
			$mid = floor(($start+$end)/2);
		} else {
			$start = $mid;
			$mid = floor(($start+$end)/2);
		}
	}
	return false;
}
$arr = [1,2,3,4,5,6,7,8,9,10];
$result = binarySearch(7,$arr);
print_r($result);
PHP实现二分法查找的更多相关文章
- 使用二分法查找mobile文件中区号归属地
		#!/usr/bin/env python #coding:utf-8 ''' Created on 2015年12月8日 @author: DL @Description: 使用二分法查找mobil ... 
- js冒泡排序与二分法查找
		冒泡排序 var attr=[1,5,7,6,3,9,2,8,4]; var zj=0; //控制比较轮数 for(var i=0;i<attr.length-1;i++) { //控制每轮的比 ... 
- Java基础(50):二分法查找的非递归实现和递归实现(完整代码可运行,参考VisualGO理解更佳)
		一.概念 二分查找算法也称折半查找,是一种在有序数组中查找某一特定元素的搜索算法. 二.算法思想 搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束:如果某一特定元素大于或者 ... 
- C语言的算法--------二分法查找
		int find(int n,int a[],int l){int low=0;int high=l-1;int middle=0;while(low<high){middle=(low+hig ... 
- JavaScript用二分法查找数据等
		//二分法查数据 var arr=[41,43,45,53,44,95,23]; var b=44; var min=0; var max=arr.length; for(var i=1;i<a ... 
- Python二分法查找及变种分析
		基于Python3 普通二分法查找目标值的index 二分法查找的思路很简单,先确定好列表nums的一头start一尾end,中间值middle根据头尾数值之和用地板除法除以2,即(start + e ... 
- C#实现二分法查找算法
		/// <summary> /// 二分法查找 /// </summary> /// <param name="arr"></param& ... 
- python3 二分法查找
		'''二分法查找有序列表掐头去尾取中间查找列表中xx在不在列表中,在,则返回索引值'''# lst = [1, 4, 6, 8, 9, 21, 23, 26, 35, 48, 49, 54, 67, ... 
- day17递归函数(二分法查找)
		递归函数: 如果函数包含了对其自身的调用,该函数就是递归的: example 1:二分法查找的实现: def find_recursion(l,aim,start=0,end=None): #end不 ... 
- C# -- 二分法查找
		二分法查找:适用于已经排序好的数组 1.二分法查找(入门案例) static void Main(string[] args) { , , , , , , , , , , , , , , , , , ... 
随机推荐
- WSGI and Paste学习笔记
			The Problem Lots of web frameworks Zope, Quixote, Webware, SkunkWeb and Twisted Web etc Applications ... 
- Appium + Java 测试 [百度地图] APP的一段简单脚本
			1. 流程 进入 app ,手动处理前段预处理,程序一直等候到达指定搜索地名页面,填入[南通大学],点击[搜索] 2. Java 脚本 // part 1: 引入需要的包 import io.appi ... 
- 深入理解JVM(二)——内存模型、可见性、指令重排序
			上一篇我们介绍了JVM的基本运行流程以及内存结构,对JVM有了初步的认识,这篇文章我们将根据JVM的内存模型探索java当中变量的可见性以及不同的java指令在并发时可能发生的指令重排序的情况. 内存 ... 
- VSCode插件开发全攻略(八)代码片段、设置、自定义欢迎页
			更多文章请戳VSCode插件开发全攻略系列目录导航. 代码片段 代码片段,也叫snippets,相信大家都不陌生,就是输入一个很简单的单词然后一回车带出来很多代码.平时大家也可以直接在vscode中创 ... 
- Python psutil模块使用
			import psutil # 获取内存信息 mem = psutil.virtual_memory() total = mem.total / 1024 / 1024 / 1024 used = m ... 
- Go语言map
			map 是一种特殊的数据结构:一种元素对(pair)的无序集合,pair 的一个元素是 key,对应的另一个元素是 value,所以这个结构也称为关联数组或字典.这是一种快速寻找值的理想结构:给定 k ... 
- 小程序上传wx.uploadFile - 小程序请假
			小程序上传wx.uploadFile UploadTask wx.uploadFile(Object object) 将本地资源上传到服务器.客户端发起一个 HTTPS POST 请求,其中 cont ... 
- 一、activiti工作流(workflow)入门介绍
			activiti官方网站(官网通常很卡,不建议看,直接看我教程就行) http://www.activiti.org/ eclipse离线安装activiti插件并下载教程 https://downl ... 
- Tools - 正版Windows7系统的下载与安装
			下载 微软原版系统下载地址:https://msdn.itellyou.cn/ 根据系统类型.语言和版本,下载合适的系统ISO文件. 例如: Windows 7 Professional with S ... 
- 新装mysql数据库登陆不上去(账号密码正确)
			Open & Edit /etc/my.cnf Add skip-grant-tables under [mysqld] Restart Mysql You should be able to ... 
