二分查找
来源:互联网 发布:网络分频器 编辑:程序博客网 时间:2024/05/22 06:22
/*二分查找 是针对一个已经进行排序的数组进行查找*/
/*
$arr 要查找的数组
$v 要查找的数
$start 要查找的开始位置
$end 要查找的结束位置
*/
function binary_search($arr, $v, $start, $end){
if($start > $end){
return false;
}else{
$middle = (int)(($start + $end)/2);
if($arr[$middle] == $v){
return $middle + 1;
}else if($arr[$middle] > $v){
return binary_search($arr, $v, $start, $middle-1);
}else{
return binary_search($arr, $v, $middle+1, $end);
}
}
}
$arr = array(2, 3, 4, 6, 8, 10);
//获得数组的长度
$len = count($arr);
$result = binary_search($arr, 3, 0, $len-1);
if( $result === false){
echo "没找到啊<br />";
}else{
echo "第" . $result ."项<br />";
}
/*
$arr 要查找的数组
$v 要查找的数
$start 要查找的开始位置
$end 要查找的结束位置
*/
function binary_search($arr, $v, $start, $end){
if($start > $end){
return false;
}else{
$middle = (int)(($start + $end)/2);
if($arr[$middle] == $v){
return $middle + 1;
}else if($arr[$middle] > $v){
return binary_search($arr, $v, $start, $middle-1);
}else{
return binary_search($arr, $v, $middle+1, $end);
}
}
}
$arr = array(2, 3, 4, 6, 8, 10);
//获得数组的长度
$len = count($arr);
$result = binary_search($arr, 3, 0, $len-1);
if( $result === false){
echo "没找到啊<br />";
}else{
echo "第" . $result ."项<br />";
}
0 0
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 一个新的开始
- java中的继承和多态以及重载和重写
- Fragmnet为何一定需要空的构造方法
- Java8 Non-Heap 中的metaspace 和compressed class space解释
- Script定时器配置
- 二分查找
- oracle merge 语句,无数据新增,有数据更新
- Ugly Number
- 关于开发框架设计的一点想法
- 文章标题
- 选择排序
- ios开发中常用的几种辅助方法
- C#命名规则和风格
- 冒泡排序