欢迎光临某某市委统战部主办官网!
当前位置:主页 > 同心园地 > 机关党建 >

PHP近期常见算法面试题

发布时间:2021-04-28 人气:

本文摘要:PHP近期常见算法面试题面试的时候会经常问到一些算法题,算法题的考察主要考察的是基础知识的掌握水平和逻辑思考能力以及学习能力的考察,所以什么样的算法题是容易考到的呢?一般常考的算法题中包罗如下几种类型:字符串处置惩罚、数组处置惩罚、实现一个数据结构、排序算法、查找算法,或许也就这几种通常来讲如果面试初、中级此外工程师的话会经常问到常见的排序算法和查找算法,不外高级开发工程师也可能在一面的时候会问到。

bob体b体育软件

PHP近期常见算法面试题面试的时候会经常问到一些算法题,算法题的考察主要考察的是基础知识的掌握水平和逻辑思考能力以及学习能力的考察,所以什么样的算法题是容易考到的呢?一般常考的算法题中包罗如下几种类型:字符串处置惩罚、数组处置惩罚、实现一个数据结构、排序算法、查找算法,或许也就这几种通常来讲如果面试初、中级此外工程师的话会经常问到常见的排序算法和查找算法,不外高级开发工程师也可能在一面的时候会问到。高级开发工程师肯定会问到的就是字符串处置惩罚、数组处置惩罚或者是实现一个数据结构的算法题。下面我把最近常被问到的这些算法题做一个或许的枚举,供大家参考,希望大家早日找到心仪的事情:1.快速排序它的最优时间庞大度为O(nlogn)【以标志元素为中心,正好每次左右都能匀称分配】,最糟糕时间庞大度为O(n^2)【标志元素每次是最大或最小值,使所有数都划分到一边】<?phpfunction quickSort($arr){ $count = count($arr); //统计出数组的长度 if ($count <= 1) { // 如果个数为空或者1,则原样返回数组 return $arr; } $index = $arr[0]; // 把第一个元素作为标志 $left = []; //界说一个左空数组 $right = []; //界说一个有空数组 for ($i = 1; $i < $count; $i++) { //从数组的第二数开始与第一个标志元素作比力 if ($arr[$i] < $index) { //如果小于第一个标志元素则放进left数组 $left[] = $arr[$i]; } else { //如果大于第一个标志元素则放进right数组 $right[] = $arr[$i]; } } $left = quickSort($left); //把left数组再看成一个新参数,再递归挪用,执行以上的排序 $right = quickSort($right); //把right数组再看成一个新参数,再递归挪用,执行以上的排序 return array_merge($left, [$arr[0]], $right); //最后把每一次的左数组、标志元素、右数组拼接成一个新数组}$arrtest = [12, 43, 54, 33, 23, 14, 44, 53, 10, 3, 56]; //测试数组$res = quickSort($arrtest);var_dump($res);2.冒泡排序它的最优时间庞大度为O(n)【正序,数组排好情况下】,最糟糕时间庞大度为O(n^2)【反序:数组排序恰好相反】<?phpfunction bubbleSort($arr){ $count = count($arr); //统计出数组的长度 for ($i = 1; $i < $count; $i++) { //控制需要排序的轮数,该例子共需要比力10轮 for ($j = 0; $j < $count - $i; $j++) { //控制每一轮需要比力的次数,每轮选出最大的一个值放在最后 if ($arr[$j] > $arr[$j + 1]) { $temp = $arr[$j]; //通过$temp介质把大的值放在后面 $arr[$j] = $arr[$j + 1]; $arr[$j + 1] = $temp; } } } return $arr; //返回最终效果}$arrtest = [12, 43, 54, 33, 23, 14, 44, 53, 10, 3, 56]; //测试数组$res = bubbleSort($arrtest);var_dump($res);3.快速查找它的最优时间庞大度为O(nlogn),最糟糕时间庞大度为O(n^2)<?phpfunction getQuick($arr){ $len = count($arr); if ($len <= 1) { return $arr; } $num = $arr[0]; $big = array(); $small = array(); foreach ($arr as $v) { if ($v > $num) $big[] = $v; //把比$num大的数放到一个数组里 if ($v < $num) $small[] = $v; //把比$num小的数放到另一个数组里 } $big = getQuick($big); $small = getQuick($small);。

bob体b体育软件

bob体b体育软件


本文关键词:PHP,近期,常见,算法,bob体b体育软件,面,试题,PHP,近期,常见

本文来源:bob体b体育软件-www.bjgrwxco.com