美文网首页码农庄园
面试官:用PHP写这么基本的算法都不会?

面试官:用PHP写这么基本的算法都不会?

作者: 小马过河R | 来源:发表于2020-09-03 09:25 被阅读0次

1、画出菱形

C经常有这样的题目

思路:需要for几行,并要知道每一行的空格和星星的递减或递加方式(与当前行数$i的关系)。

for($i=0;$i<=3;$i++){

echo str_repeat("&nbsp;",3-$i);

echo str_repeat("*",$i*2+1);

echo '<br/>';

}

2、冒泡排序

思路:从大到小或者从小到大多一个数组进行排序。

从小到大为例。从第一个开始,对整列数两两交换一次(比较并temp对换位置),最小的数在最左边,每次都能得一个在剩下的数中的最小的数,“冒”出来的数组成一个有序区间,剩下的值组成一无序区间,且有序区间中每一元素值都比无序区间的小

时间复杂度:O(n²)

$arr = array(1,3,5,32,756,2,6);

$len = count($arr);

for ($i=0;$i<$len-1;$i++){ //执行$len-1轮的比较

for ($j=$i+1;$j<$len;$j++){//每一轮都对其中的数字进行两两比较 ,第一轮从第一个开始比较,第二轮从第二个开始....

if($arr[$i]>$arr[$j]){//从小到大,两两交换   

$p = $arr[$i];      

$arr[$i] = $arr[$j];      

$arr[$j]= $p;    

}  

}

}

var_dump($arr);

3、快速排序

快速排序算法是对冒泡算法的一个优化。他的思想是先对数组进行分割, 把大的元素数值放到一个临时数组里,把小的元素数值放到另一个临时数组里(这个分割的点可以是数组中的任意一个元素值,一般用第一个元素,即$array[0]),然后继续把这两个临时数组重复上面拆分,最后把小的数组元素和大的数组元素合并起来。这里用到了递归的思想。其实还有分治的思想。

时间复杂度:O (nlogn)

function quickSort($array){   

// 判断是否需要运行

if(!isset($array[1]))        {return $array};   //或者 if (count($array) <= 1) { return $array; }

$mid = $array[0]; //获取一个用于分割的关键字,一般是首个元素   

$leftArray = array();    

$rightArray = array();   

foreach($array as $v)    {       

            if($v > $mid)          {  $rightArray[] = $v }//把比$mid大的数放到一个数组里       

            else      {$leftArray[] = $v }   //把比$mid小的数放到另一个数组里   

}   

$leftArray = quickSort($leftArray); //把比较小的数组再一次进行分割   

$rightArray = quickSort($rightArray);  //把比较大的数组再一次进行分割   

return array_merge($leftArray,array($mid) ,$rightArray);  //组合两个结果  //把分割的元素加到小的数组后面,不能忘了它哦   

}

相关文献:

强推教程

视频教程2

相关文章

  • 面试官:用PHP写这么基本的算法都不会?

    1、画出菱形 C经常有这样的题目 思路:需要for几行,并要知道每一行的空格和星星的递减或递加方式(与当前行数$i...

  • 腾讯一面应用开发

    最遗憾的,叫写冒泡排序都能写数组溢出,非科班面对算法题真的紧张。凉凉。 面试官是做php的,我用java。 问了h...

  • PHP单链表判断回文字符串

    1、背景 最近在学习王争老师的数据结构与算法之美,自己将课程中涉及的算法用PHP的形式表达出来,程序写的有问题,欢...

  • 让面试官满意的排序算法(图文解析)

    让面试官满意的排序算法(图文解析) 这种排序算法能够让面试官面露微笑 这种排序算法集各排序算法之大成 这种排序算法...

  • 听欢哥讲PHP之四种排序算法

    PHP 实现四种基本排序算法 许多人都说算法是程序的核心,算法的好坏决定了程序的质量。作为一个初级phper,虽然...

  • PHP中常用的四大排序算法

    PHP 实现四种基本排序算法 许多人都说算法是程序的核心,算法的好坏决定了程序的质量。作为一个初级phper,虽然...

  • iOS开发之二叉树OC实现

    今天面试中面试官的第一个题就是让我写一个二叉树的实现,时间是两个小时,我开始用递归算法写了一个,面试官说网上也有很...

  • 用php写八大排序算法

    问题:怎么理解排序算法的不稳定性? 简单地说就是所有相等的数经过某种排序方法后,仍能保持它们在排序之前的相对次序,...

  • Retrofit 上传多张图片+多个字段文字表单

    最近在开发一款类似探探一样的APP,然后我是用php写的后台接口,前端我用安卓。虽然APP的功能就一个匹配算法难一...

  • 调整心态,再出发

    面试头条的技术岗,面试官一上来,没有寒暄,没有问一些常规问题,直接出了几道算法题目,开始写。。。。。。。由于算法复...

网友评论

    本文标题:面试官:用PHP写这么基本的算法都不会?

    本文链接:https://www.haomeiwen.com/subject/inqwsktx.html