二分法 | php实现

时间:2022-10-27 18:19:39

学习数据结构与算法的教程大多都是以C++,JAVA作为实例语言。

由于最近实习常用php,顺便用php实现一下常用数据结构,也算是复习下上学期知识。


<?php 

class BinarySearch{

public static function indexOf(array $a,$key){
$lo=0;
$hi=count($a)-1;
$mid=$lo+($hi-$lo)/2;
while ($lo<=$hi) {
if($key<$a[$mid])
$hi=$mid-1;
else if($key>$a[$mid])
$lo=$mid+1;
else
return $mid;
}
return -1;
}

public static function rank($key ,array $a){
return self::indexOf($a,$key);
}
}



##测试如下
$a[]=1;
$a[]=2;
$a[]=3;
$a[]=4;
$a[]=5;


print_r(BinarySearch::rank(3,$a));
#2