学习数据结构与算法的教程大多都是以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