欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

php算法面试题有哪几种

时间:2023-07-18



1.二分查找

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

<?php  //二分查找  function bin_search($arr,$low,$high,$k)  {    if($low <= $high)    {      $mid = intval(($low + $high)/2);      if($arr[$mid] == $k)      {        return $mid;      }      else if($k < $arr[$mid])      {        return bin_search($arr,$low,$mid-1,$k);      }      else      {        return bin_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.约瑟夫环(线性代数)

function king($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

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

function get_ext1($file_name){return strrchr($file_name, ‘.’);}function get_ext2($file_name){return substr($file_name, strrpos($file_name, ‘.’));}function get_ext3($file_name){return array_pop(explode(‘.’, $file_name));}function get_ext4($file_name){$p = pathinfo($file_name);return $p['extension'];}function get_ext5($file_name){return strrev(substr(strrev($file_name), 0, strpos(strrev($file_name), ‘.’)));}

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

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。