分享两个php小算法:递归和冒泡

二维数组头部追加元素的两种方法

最近换了新公司,在招PHP开发工程师和前端开发等开发类岗位。所以也给面试的出了两个小题目,一个是计算n的阶乘,一个是一维数组排序。题目大概如下:

题目一:用递归写一个求n的阶乘。

数学表达式:n! = 1*2*3*...*n-1*n

php算法:

  1. function jc($n){
  2.     $data = 1;
  3.     if($n > 1){
  4.         $data = $n*jc($n-1);
  5.     }
  6.     return $data;
  7. }

题目二:给一维数组排序,从小到大或从大到小都可以。

一维数组:[1,3,5,2,4,6,10,8,9]

对于这个题目最简单的方法就是用sort()函数或rsort()就可以很快的对数组进行升序或降序排列了,其次大家还可以用递归、冒泡等算法反正方法是很多,下面给一个冒泡的示例代码。

  1. function maopao($arr){
  2.     $length = sizeof($arr);
  3.     for($i=0;$i<=$length;$i++){
  4.         for($j=$length-1;$j>$i;$j--){
  5.             if($arr[$j] < $arr[$j-1]){
  6.                 $temp = $arr[$j];
  7.                 $arr[$j] = $arr[$j-1];
  8.                 $arr[$j-1] = $temp;
  9.             }
  10.         }
  11.     }
  12.     return $arr;
  13. }

其实上面的题目可以说对于开发者来讲应该算是很基础的了,但是面试了很多人甚至2年多开发经验的人还写不出来。

第三个题目是让求职者写一个基本的Ajax请求,第四个题目是数据库查询的sql语句。今天我把这个面试题分享出来,希望有在郑州找开发类工作的可以联系我,公司团队氛围非常融洽,欢迎有3年以上工作经验的大佬们加入。

波波

发表评论

您必须 登录 才能发表留言!