PHP 实现二分查找

PHP 实现二分查找

原理:

首先,假设数组中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将数组分成前、后两个子数组,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子数组,否则进一步查找后一子数组。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子数组不存在为止,此时查找不成功。

<?phpfunction div_search($array,$low,$high,$key){if ($low<=$high) {$mid = intval(($low+$high)/2);// echo $low." ";// echo $mid." ";// echo $high."<br>";//找到结果if ($array[$mid]==$key) {return $mid;}elseif ($array[$mid]>$key) {//中值比要找的值大return div_search($array,$low,$mid-1,$key);}else{//中值比要找的小return div_search($array,$mid+1,$high,$key);}}else{return -1;}}
//输入数组按升序排列
$arr = array(1,2,5,8,9,50,222,333);
$res = div_search($arr,0,8,222);
echo $res;?>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/250692.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python基础:条件循环字符串

while True:a int(input(摄氏度转换为华氏温度请按1\n华氏温度转化为摄氏温度请按2\n))if a 1:celsius float(input(输入摄氏温度&#xff1a;))fahreaheit (celsius 1.8) 32 # f c9/532print({:.2f}摄氏温度转为华氏温度为{:.2f}.format(celsius, fahreaheit))elif a …

项目难点总结

一 滑动窗口 &#xff11;&#xff09;滑动窗口设置 &#xff12;&#xff09;窗口对齐 &#xff13;&#xff09;窗口的调优&#xff0c;能否正常触发 数据丢失问题    &#xff52;&#xff45;&#xff54;&#xff52;&#xff59; 事件延时&#xff08;late arrival …

7-n!末尾有几个0

如何确定一个N&#xff01;末尾有多少个零 转载 2015年08月30日 15:02:49622题目&#xff1a;1*2*3*……*100 求结果末尾有多少个零 分析&#xff1a;一般类似的题目都会蕴含某种规律或简便方法的,阶乘末尾一个零表示一个进位&#xff0c;则相当于乘以10而10 是由2*5所得&#…

PHP中header的用法

PHP中header的用法 摘要&#xff1a; header()的作用&#xff1a;给客户端发送头信息 头信息的作用 跳转 Header("Refresh:2; URLhttp://localhost//session.php");//2秒后跳转 //若等待时间为0&#xff0c;则与header("location:")效果一致 Header(&q…

node --- koa、Mongoose、vue联系知识梳理

前端、后端联系知识梳理 以打开浏览器,访问login为栗打开浏览器,访问localhost:8080/#/loginsrc/router/index.js 会根据 /login 找到对应的Login(src/components/pages/Login.vue)组件, 然后渲染到浏览器当输入用户名和密码,点击登录按钮后根据Login组件中配置的axios请求向后…

倒计时

//1获取24小时$fixation_time strtotime("1 day")-time();//2.获取已经过去的时间$different time()-strtotime($question->created_at);//3.获取时间差$time $fixation_time - $different;//4.获取时$hour floor($time/3600);if($hour<10){$hour 0.$hour;…

Git命令一览

Git命令一览 分支名称 master 稳定分支 develop 不稳定分支&#xff08;开发分支&#xff09; issue 或 fixbug BUG 分支 feature 新功能分支 release 预发布分支 本地操作 git init 初始化 git add 增加到暂存区 git commit -m 提交到分支 git status 查看状态 gi…

从壹开始前后端分离 [ Vue2.0+.NET Core2.1] 二十二║Vue实战:个人博客第一版(axios+router)...

前言 今天正式开始写代码了&#xff0c;之前铺垫了很多了&#xff0c;包括 6 篇基础文章&#xff0c;一篇正式环境搭建&#xff0c;就是为了今天做准备&#xff0c;想温习的小伙伴可以再看看《Vue 基础入门详细的环境搭建》&#xff0c;内容很多&#xff0c;这里就暂时不复习了…

node --- 使用mongoose连接mongoDB,并初始化所有的Schema

写了一个init.js函数 使用了glob来对协助完成(https://github.com/isaacs/node-glob)连接的数据库的名称(smile-vue)连接数据库操作:connect 断线重开连接失败连接成功 初始化所有的Schemas暴露给其他页面使用的接口 const mongoose require(mongoose); const db mongodb:/…

ajax跨域问题(php)

ajax出现请求跨域错误问题,主要原因就是因为浏览器的“同源策略”。 解决方法(我只用过下面这3种)&#xff1a; 1. 架设服务器代理&#xff1a;即浏览器请求同源服务器&#xff0c;再由后者请求外部服务&#xff08;之前博主一直用这种方法&#xff0c;其实感觉这种算不上跨域请…

PHP 实现随机字符串,可作为随机密码

PHP 实现随机字符串&#xff0c;可作为随机密码 //传入需要的字符串长度 function generate_rand($length){ $chars "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; srand((double)microtime()*1000000); $randStr ""; for($i0;…

红帽7 su命令与sudo服务

1、su命令 su命令可以解决切换用户身份的需求&#xff0c;使得当前用户在不退出登录的情况下&#xff0c;顺畅地切换到其他用户&#xff0c;比如从root管理员切换至普通用户 [rootlocalhost Desktop]# su - lisi Last login: Wed Sep 12 23:47:44 CST 2018 on pts/0 [lisilocal…

vue --- 按钮的防重复点击事件

按钮的防重复点击事件 :loading属性当loading true时:按钮会显示一个旋转的圆圈.此时的按钮是无法点击的当loading false时:按钮重新变为可点击的状态可以通过使用一个变量来控制按钮的可点击性,当提交时,按钮不可点击,提交完毕后,按钮可以点击 <van-button :loading&qu…

PHP 实现列出目录的内容

PHP 实现列出目录的内容 <?phpfunction list_files($dir) { if(is_dir($dir)) { if($handle opendir($dir)) { while(($file readdir($handle)) ! false) { if($file ! "." && $file ! ".." && $file ! "Thumbs.db") { …

CentOS6找回root密码 - 黑猴子

1&#xff09;重启Linux&#xff0c;见到下图&#xff0c;在3秒钟之内按下回车 2&#xff09;三秒之内要按一下回车&#xff0c;出现如下界面 3&#xff09;按下e键就可以进入下图 4&#xff09;移动到下一行&#xff0c;再次按e键 5&#xff09;移动到下一行&#xff0c;进行修…

树形依赖背包dp的最优解问题

fij表示在dfs序序列上做了前i个点&#xff0c;已经选择了j个人的最大权值和。   那么如果这个点选fij−>fi1,j1   如果不选fij−>fisizei,j&#xff08;表示跳过子树转移&#xff09; code&#xff1a; for(i1;i<N;i)for(j0;j<K;j){f[i1][j1]max(f[i1][j1],f[i…

vue node --- 前后端联系的知识梳理

前端、后端联系知识梳理 以打开浏览器,访问login为栗打开浏览器,访问localhost:8080/#/loginsrc/router/index.js 会根据 /login 找到对应的Login(src/components/pages/Login.vue)组件, 然后渲染到浏览器当输入用户名和密码,点击登录按钮后根据Login组件中配置的axios请求向后…

PHP 销毁指定目录

PHP 销毁指定目录 销毁指定目录&#xff0c;以及之下的内容 <?phpfunction destroyDir($dir, $virtual false) { $ds DIRECTORY_SEPARATOR; $dir $virtual ? realpath($dir) : $dir; $dir substr($dir, -1) $ds ? substr($dir, 0, -1) : $dir; if (is_dir($dir) …

[译]写程序更快、更好、更便宜的艺术

原文 没有人想延迟交付时间、超出预算。没有一个开发人员会在早上醒来的时候想"我今天要做搞一些垃圾代码。我如何才能增加、耗费雇主更多的钱&#xff1f;"。尽管如此&#xff0c;还是有许多的软件项目进行的不是很好。总是有来自各方面的压力&#xff0c;让我们不得…

常见笔试面试问题点(转载)

原文&#xff1a; java各种概念 Core Java总结 Base: OOA是什么&#xff1f;OOD是什么&#xff1f;OOP是什么&#xff1f;{oo(object-oriented):基于对象概念,以对象为中心,以类和继承为构造机制,来认识,理解,刻画客观世界和设计,构建相应的软件系统的一门方法;本意----模拟人类…