PHP二分查找
来源:互联网 发布:网络交易管理办法 pdf 编辑:程序博客网 时间:2024/05/20 20:56
二分查找需要数组有序,效率为O(logn)
<?php #二分查找 function binarySearch(Array $arr, $target) { $low = 0; $high = count($arr) - 1; while($low <= $high) { $mid = floor(($low + $high) / 2); #找到元素 if($arr[$mid] == $target) return $mid; #中元素比目标大,查找左部 if($arr[$mid] > $target) $high = $mid - 1; #重元素比目标小,查找右部 if($arr[$mid] < $target) $low = $mid + 1; } #查找失败 return false; } $arr = array(1, 3, 5, 7, 9, 11); $inx = binarySearch($arr, 1); var_dump($inx);?>
输出
float(0)
递归方法
function binarySearch(Array $arr, $target) { $mid = ceil(count($arr) / 2); //取中间位的下标 if ($arr[$mid] < $target) { $arr = array_slice($arr,$mid); return binarySearch($arr, $target); } else if ($arr[$mid] > $target){ $arr = array_slice($arr,0,$mid); return binarySearch($arr, $target); } else if{ return $mid; } else { return false; } }
0 0
- PHP 顺序查找、二分查找
- php二分查找法
- php二分查找
- php 二分算法查找
- php顺序、二分查找
- php 二分查找
- php-二分查找
- PHP 二分查找
- PHP 二分查找
- PHP二分查找
- 二分查找算法 php
- php 二分查找
- php二分查找算法
- 二分查找法 php
- PHP二分查找
- php二分查找法
- php 二分查找
- 二分查找算法 php
- Linux中find 命令
- C#—数据类型
- BAE python-worker 服务
- 聚合与组合的区别
- 给vim增加Vundle和NERDTree插件
- PHP二分查找
- 仿微信通讯录的Demo----PinnedHeaderListView
- Intellij IDEA 快捷键工具大全
- 代码设置selector和color
- uva 658 UVA 658 It's not a Bug, it's a Feature!
- 二叉树中和为某一值的路径
- ORA-27125: unable to create shared memory segment
- Mirantis Fuel调研
- express安装问题