php基础查找算法
2024-09-30 02:41:35
1、顺序查找
function line_search($array,$tar)
{
if(!is_array($array) || count($array) < 1) return false;
for($i=0;$i<count($array);$i++){
if($array[$i] == $tar){
return $i;
}
}
return false;
} line_search($arr,34);
2、二分法查找
// 非递归
function binary_search($array,$tar)
{
if(!is_array($array) || count($array) < 1) return false;
// 数组必须排序
sort($array);
$high = count($array) - 1;
$low = 0;
while($low <= $high){
$middle = intval(($high + $low) / 2);
if($array[$middle] > $tar){
$high = $middle - 1;
}elseif($array[$middle] < $tar){
$low = $middle + 1;
}else{
return $middle;
}
}
return false;
} binary_search($arr,165.4);
// 递归
function binary_search($array,$tar,$high=0,$low=0)
{
if(!is_array($array) || count($array) < 1) return false;
sort($array);
if($low <= $high){
$middle = intval(($high + $low) / 2);
if($array[$middle] > $tar){
$high = $middle - 1;
echo $high."</br>";
return binary_search($array,$tar,$high,$low);
}elseif($array[$middle] < $tar){
$low = $middle + 1;
return binary_search($array,$tar,$high,$low);
}else{
return $middle;
}
}
return false;
} binary_search($arr,125,count($arr),0);
最新文章
- vim - char code and charset
- sass基本用法(转载)
- 后端码农谈前端(CSS篇)第八课:继承与层叠
- 学习Swift,一定不能错过的10大开源项目!
- JavaWeb四个域
- mysql sort 性能优化
- HDU 4081 Qin Shi Huang&#39;s National Road System
- selector是在文件夹drawable中进行定义的xml文件。
- Spring ContentNegotiatingViewResolver
- 使用TortoiseSVN打Tag
- luogu3687-[ZJOI2017] 仙人掌
- ModelFirst开发
- 简单对比git pull和git pull --rebase的使用
- toString 和new String()区别
- HTML5表单_form
- HDOJ2004_成绩转换
- 谈谈MySQL无法连接的原因和分析方法
- (转)c# 互斥锁
- 行为型设计模式之模板方法(TEMPLATE METHOD)模式 ,策略(Strategy )模式
- 021-centos6.5上二进制安装mysql5.7.22
热门文章
- BZOJ_3209_花神的数论题_组合数+数位DP
- bzoj3195 [Jxoi2012]奇怪的道路——状压DP
- Linux下安装Redis及搭建主从
- bzoj 5281: [Usaco2018 Open]Talent Show【dp】
- bzoj 1699: [Usaco2007 Jan]Balanced Lineup排队【st表||线段树】
- vsftpd 配置文件
- 【POJ - 1458】Common Subsequence(动态规划)
- Luogu P3320 [SDOI2015]寻宝游戏 / 异象石 【LCA/set】
- Luogu P1638 逛画展 【二分答案】
- 安装privoxy后curl 操作