php算法面试题有哪几种

1.二分查找

假设数据是按升序排序的,对于给定值x,从序列的中间位置开始比较,如果当前位置值等于x,则查找成功;若x小于当前位置值,则在数列的前半段中查找;若x大于当前位置值则在数列的后半段中继续查找,直到找到为止。(数据量大的时候使用)

<?php
//二分查找
functionbin_search($arr,$low,$high,$k)
{
if($low<=$high)
{
$mid=intval(($low+$high)/2);
if($arr[$mid]==$k)
{
return$mid;
}
elseif($k<$arr[$mid])
{
returnbin_search($arr,$low,$mid-1,$k);
}
else
{
returnbin_search($arr,$mid+1,$high,$k);
}
}
return-1;
}

$arr=array(1,2,3,4,5,6,7,8,9,10);

print(bin_search($arr,0,9,3));
?>

2.约瑟夫环(线性代数)

functionking($n,$m)
{
$p=0;//上一轮出列序号
for($i=2;$i<=$n;$i++){
$p=($p+$m)%$i;
}

return$p+1;
}

3.获取文件扩展名

(1)相等 相等 不相等

(2)true true true true true false true false

(3)aaaaaa

(4)5 0 1

(5)5 2

(6)1 2

使用五种以上方式获取一个文件的扩展名

functionget_ext1($file_name){
returnstrrchr($file_name,‘.’);
}
functionget_ext2($file_name){
returnsubstr($file_name,strrpos($file_name,‘.’));
}
functionget_ext3($file_name){
returnarray_pop(explode(‘.’,$file_name));
}
functionget_ext4($file_name){
$p=pathinfo($file_name);
return$p['extension'];
}
functionget_ext5($file_name){
returnstrrev(substr(strrev($file_name),0,strpos(strrev($file_name),‘.’)));
}

以上就是php算法面试题的基础介绍,本篇为大家挑选了几个常见的代表类型,也是面试时被问到最多的题目,大家一定要多结合基础的算法知识进行理解。更多php学习指路:php教程

发表回复