二分法 | php实现

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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值