php 二分查找(折半查找) 顺序查找
来源:互联网 发布:手机辅助软件 编辑:程序博客网 时间:2024/06/13 01:05
<?php
Class Select
{
/**
* @content 二分查找(折半查找)递归
* @params [type] $select [要查找的元素]
* @params [type] $arr [数组]
* @params [type] $min 键值开始的位置
* @params [type] $max 键值结束的位置
*/
public function BinaryRecursive($arr,$select,$min,$max){
$half = floor(($min+$max)/2);
if($select>$arr[$half]){
return $this->Binary($arr,$select,$half+1,$max);
}else if($select < $arr[$half]){
return $this->Binary($arr,$select,$min,$half-1);
}else{
return $half;
}
}
/**
* @content 二分查找(折半查找)非递归
* @params [type] $select [要查找的元素]
* @params [type] $arr [已经排序好的数组]
* @params [type] $min 键值开始的位置
* @params [type] $max 键值结束的位置
*/
public function Binary($arr,$select,$min,$max){
}else{
return $half;
}
}
//return -1;
}
/*顺序查找*/
function seqSearch($arr,$k){
foreach($arr as $key=>$val){
if($val==$k){
return $key;
}
}
return -1;
}
}
?>
Class Select
{
/**
* @content 二分查找(折半查找)递归
* @params [type] $select [要查找的元素]
* @params [type] $arr [数组]
* @params [type] $min 键值开始的位置
* @params [type] $max 键值结束的位置
*/
public function BinaryRecursive($arr,$select,$min,$max){
$half = floor(($min+$max)/2);
if($select>$arr[$half]){
return $this->Binary($arr,$select,$half+1,$max);
}else if($select < $arr[$half]){
return $this->Binary($arr,$select,$min,$half-1);
}else{
return $half;
}
}
/**
* @content 二分查找(折半查找)非递归
* @params [type] $select [要查找的元素]
* @params [type] $arr [已经排序好的数组]
* @params [type] $min 键值开始的位置
* @params [type] $max 键值结束的位置
*/
public function Binary($arr,$select,$min,$max){
while($min<=$max){
//$half 中间值位置
$half = ceil(($min+$max)/2);
//当所查值大于中间值时,变$min 键值的开始位置
if($select > $arr[$half] ){$min = $half + 1;
}elseif($select < $arr[$half]){
//当所查值小于中间值时,变$max 键值的结束位置
}else{
return $half;
}
}
//return -1;
}
/*顺序查找*/
function seqSearch($arr,$k){
foreach($arr as $key=>$val){
if($val==$k){
return $key;
}
}
return -1;
}
}
?>
阅读全文
0 0
- php 二分查找(折半查找) 顺序查找
- PHP 顺序查找和二分查找(也叫做折半查找)算法
- 折半查找(二分查找)
- 二分查找(折半查找)
- 二分查找(折半查找)
- 折半查找(二分查找)
- 折半查找(二分查找)
- 二分查找(折半查找)
- 折半查找(二分查找)
- 二分查找(折半查找)
- 二分查找(折半查找)
- 折半查找(二分查找)
- 二分查找(折半查找)
- 折半查找(二分查找)
- 折半查找(二分查找)
- 折半查找(二分查找)
- 折半查找(二分查找)
- 二分查找(折半查找)
- java synchronized详解
- 编写函数catStr(char str1[],char str2[])用于进行两个字符串的连接,编写函数lenStr()用于统计一个字符串的长度。编写函数cmpStr()用于判断两个字符串的大小。
- js中程序员的迷茫,this的归属问题
- 虚拟机
- sizeof 与 strlen
- php 二分查找(折半查找) 顺序查找
- 1-2 Welcome to You!
- 【莫比乌斯反演】BZOJ1101 [POI2007]Zap
- 脚本调试和函数
- UVa12716GCD XOR
- tomcat 重启后图片等文件消失解决方案虚拟路径映射
- Eclipse实现代码反编译
- c++中字符串的基本操作函数
- Redis数据持久化