二分查找,顺序查找
2017-08-31 20:09
204 查看
<?php
/*
*顺序查找
*/
function seqSearch($arr,$k){
foreach($arr as $key=>$val){
if($val==$k){
return $key;
}
}
return "meiyou";
}
/*
二分查找法
*/
function binSearch($arr,$search){
$height=count($arr)-1;
$low=0;
while($low<=$height){
$mid=floor(($low+$height)/2);//获取中间数
if($arr[$mid]==$search){
return $mid;//返回
}elseif($arr[$mid]<$search){//当中间值小于所查值时,则$mid左边的值都小于$search,此时要将$mid赋值给$low
$low=$mid+1;
}elseif($arr[$mid]>$search){//中间值大于所查值,则$mid右边的所有值都大于$search,此时要将$mid赋值给$height
$height=$mid-1;
}
}
return "查找失败";
}
/*
二分查找递归使用
*/
function binSearch2($arr,$low,$height,$k){
if($low<=$height){
$mid=floor(($low+$height)/2);//获取中间数
if($arr[$mid]==$k){
return $mid;
}elseif($arr[$mid]<$k){
return binSearch2($arr,$mid+1,$height,$k);
}elseif($arr[$mid]>$k){
return binSearch2($arr,$low,$mid-1,$k);
}
}
return -1;
}
/*
*顺序查找
*/
function seqSearch($arr,$k){
foreach($arr as $key=>$val){
if($val==$k){
return $key;
}
}
return "meiyou";
}
/*
二分查找法
*/
function binSearch($arr,$search){
$height=count($arr)-1;
$low=0;
while($low<=$height){
$mid=floor(($low+$height)/2);//获取中间数
if($arr[$mid]==$search){
return $mid;//返回
}elseif($arr[$mid]<$search){//当中间值小于所查值时,则$mid左边的值都小于$search,此时要将$mid赋值给$low
$low=$mid+1;
}elseif($arr[$mid]>$search){//中间值大于所查值,则$mid右边的所有值都大于$search,此时要将$mid赋值给$height
$height=$mid-1;
}
}
return "查找失败";
}
/*
二分查找递归使用
*/
function binSearch2($arr,$low,$height,$k){
if($low<=$height){
$mid=floor(($low+$height)/2);//获取中间数
if($arr[$mid]==$k){
return $mid;
}elseif($arr[$mid]<$k){
return binSearch2($arr,$mid+1,$height,$k);
}elseif($arr[$mid]>$k){
return binSearch2($arr,$low,$mid-1,$k);
}
}
return -1;
}
相关文章推荐
- 十.用C语言实现查找算法 (1)顺序查找;(2)二分查找(折半查找);(3)二叉排序树;(4)哈希查找
- 算法如功夫——二分查找和顺序查找的C代码
- 使用PHP描述顺序查找和二分查找(也叫做折半查找)算法,顺序查找必须考虑效率,对象可以是一个有序数组
- 简单描述一下二分查找和顺序查找
- 第三周作业 --------顺序查找和二分查找
- PHP 顺序查找和二分查找(也叫做折半查找)算法
- 《Delphi 算法与数据结构》学习与感悟[1]: 通过 "顺序查找" 与 "二分查找" 说明算法的重要性
- 查找系列之简述顺序查找和二分查找
- C/C++查找之一(顺序查找、折半查找(二分查找))
- Java中常用的查找算法 - 顺序查找和二分查找
- 使用PHP描述顺序查找和二分查找(也叫做折半查找)算法,顺序查找必须考虑效率,对象可以是一个有序数组
- 二分查找和顺序查找
- PHP数据结构——二分查找与顺序查找
- 查找之顺序查找
- 顺序查找:二分查找,斐波那契查找,插值查找
- 顺序表查找(顺序查找、二分查找) C语言实现
- 查找算法集:顺序查找、二分查找、插值查找、动态查找(数组实现、链表实现) .
- 查找之顺序查找
- 利用低端哨实现顺序表的查找
- 静态查找表:顺序查找、折半查找、分块查找