面试时间:2019-11-13 星期三,下午两点。
Yii2 实现原理。
Yii2 生命周期。

快速排序算法。
分治,递归,每一次递归能够确定一个数的位置。
不稳定算法,平均算法时间复杂度 O(nlog2n),平均空间复杂度 O(log2n)。
<?php
/**
* Quick Sort Implement 1
* @param array $array
* @return array
*/
function quickSort(array $array) {
if (count($array) <= 1) {
return $array;
}
$middle = $array[0];
$left = [];
$right = [];
for ($i = 1; $i < count($array); $i++) {
if ($array[$i] < $middle) {
$left[] = $array[$i];
} else {
$right[] = $array[$i];
}
}
return array_merge(quickSort($left), [$middle], quickSort($right));
}
/**
* Quick Sort Implement 2
* @param array $array
* @param int $start
* @param int $end
*/
function quickSort2(array &$array, int $start, int $end) {
if ($start >= $end) {
return;
}
$i = $start;
$middle = $array[$start];
for ($j = $start + 1; $j <= $end; $j++) {
if ($array[$j] < $middle) {
$i++;
exchange($array[$i], $array[$j]);
}
}
exchange($array[$i], $array[$start]);
quickSort2($array, $start, $i - 1);
quickSort2($array, $i + 1, $end);
}
function exchange(&$a, &$b) {
[$a, $b] = [$b, $a];
}
function printArray($array) {
foreach ($array as $value) {
echo $value, " ";
}
echo "\n";
}
$array = [6, 5, 3, 1, 8, 7, 2, 4];
printArray(quickSort($array));
quickSort2($array, 0, count($array) - 1);
printArray($array);
自动加载原理。
https://zyf.im/2019/04/28/php-composer-basic/
工作中遇到的最难的问题是什么?怎么解决的。
494 total views, 1 views today