您的位置:首页 > 其它

二分查找和顺序查找

2016-12-06 10:59 183 查看
具体代码实现如下:

二分查找:

// 二分查找
/**
* @param array $arr 查找的数组
* @param int $low 数组起始元素下标
* @param int $hig 数组末尾元素下标
* @param $k 所要查找的元素
* return 成功返回数组下标,失败则返回-1
**/
function bin_sort($arr,$low,$hig,$k) {
if($low<=$hig) {
$mid = intval(($low+$hig)/2);
if($arr[$mid]==$k) {
return $mid;
} else if($k<$arr[$mid]) {
bin_sort($arr,$low,$mid-1,$k);
} else if($k>$arr[$mid]) {
bin_sort($arr,$mid+1,$hig,$k);
}
}

return -1;
}

顺序查找:

// 顺序查找
function search($arr,$k) {
for($i=0,$n=count($arr);$i<$n;$i++) {
if($arr[$i]==$k) {
break;
}
}

if($i<$n) {
return $i;
} else {
return -1;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: