php查找
来源:互联网 发布:高速收费查询软件 编辑:程序博客网 时间:2024/06/08 03:58
<?php
Class Select
{
/*
@content 二分查找非递归方式实现
@params $arr array 被查找的内容 有序的下标连续的索引数组
@params $select mixed 要查找的内容
@parmas $min int 键值的开始位置
@params $max int 键值的结束位置
@return $key int 要查找的值所在的位置
*/
public function Binary($arr,$select,$min,$max)
{
while ($min<=$max) {
$half = ceil(($min+$max)/2);
if ($arr[$half] > $select) {
$max = $half-1;
} elseif ($arr[$half] < $select) {
$min = $half +1;
} else {
return $half;
}
}
return -1;
}
/*
@content 二分查找递归方式实现
@params $arr array 被查找的内容 有序的下标连续的索引数组
@params $select mixed 要查找的内容
@parmas $min int 键值的开始位置
@params $max int 键值的结束位置
@return $key int 要查找的值所在的位置
*/
public function BinaryRecursive($arr,$select,$min,$max)
{
$half = ceil(($min+$max)/2);
if ($arr[$half] > $select) {
return $this->BinaryRecursive($arr,$select,$min,$half-1);
} elseif ($arr[$half] < $select) {
return $this->BinaryRecursive($arr,$select,$half+1,$max);
} else {
return $half;
}
}
}
?>
Class Select
{
/*
@content 二分查找非递归方式实现
@params $arr array 被查找的内容 有序的下标连续的索引数组
@params $select mixed 要查找的内容
@parmas $min int 键值的开始位置
@params $max int 键值的结束位置
@return $key int 要查找的值所在的位置
*/
public function Binary($arr,$select,$min,$max)
{
while ($min<=$max) {
$half = ceil(($min+$max)/2);
if ($arr[$half] > $select) {
$max = $half-1;
} elseif ($arr[$half] < $select) {
$min = $half +1;
} else {
return $half;
}
}
return -1;
}
/*
@content 二分查找递归方式实现
@params $arr array 被查找的内容 有序的下标连续的索引数组
@params $select mixed 要查找的内容
@parmas $min int 键值的开始位置
@params $max int 键值的结束位置
@return $key int 要查找的值所在的位置
*/
public function BinaryRecursive($arr,$select,$min,$max)
{
$half = ceil(($min+$max)/2);
if ($arr[$half] > $select) {
return $this->BinaryRecursive($arr,$select,$min,$half-1);
} elseif ($arr[$half] < $select) {
return $this->BinaryRecursive($arr,$select,$half+1,$max);
} else {
return $half;
}
}
}
?>
阅读全文
0 0
- php查找
- PHP 顺序查找、二分查找
- php数组顺序查找
- php数组二分法查找
- 查找php.ini路径
- php字符查找 【转】
- php二分查找法
- php二分查找
- PHP快速查找、排序
- php 二分算法查找
- php数组二分法查找
- php顺序、二分查找
- 二分法查找-php实例
- PHP实现查找表
- php 二分查找
- php-二分查找
- PHP 二分查找
- PHP 二分查找
- rabbitMQ第二篇:java简单的实现RabbitMQ
- 分布式最通俗的解释,我自己的整理。
- mybatis判断是否为空或null
- 百度任意类型图片爬虫
- Android 的进程间通信 Binder——AIDL的入门使用(一)
- php查找
- 11月27日云栖精选夜读:阿里毕玄:智能时代,运维工程师在谈什么?
- CORS跨域问题
- bzoj 2115: [Wc2011] Xor(DFS+线性基)
- 以太坊的工作原理, 干货
- python基础-tcp粘包、解决方案、subprocess执行shell命令
- sql查询优化
- bash nohup 执行ORACLE SQL
- rabbitMQ第三篇:采用不同的交换机规则