自定義實現內置的shuffle
<?php
//實現自定義的隨機打亂
function myshuffle($arr)
{
$result = [];
$time_start = getmicrotime();
while (count($result) < count($arr)) {
$max = max($arr);
$min = min($arr);
$num = rand($min, $max);
if (!in_array($num, $result)) {
$result[] = $num;
$key = array_search($num, $arr);
if ($key !== false) {
unset($arr[$key]);
}
}
}
$time_end = getmicrotime();
$time = $time_end - $time_start;
echo '自定義函數執行時間:' . $time . '秒' . "<br>";
}
function mushuffles($arr)
{
$result = [];
$time_start = getmicrotime();
while (count($result) < count($arr)) {
$num = array_rand($arr);
$result[] = $num;
$result = array_unique($result);
}
$time_end = getmicrotime();
$time = $time_end - $time_start;
echo '使用系統的數組隨機' . $time . '秒';
}
function testshuffle($arr)
{
$time_start = getmicrotime();
$arr = shuffle($arr);
$time_end = getmicrotime();
$time = $time_end - $time_start;
echo '系統函數執行時間' . $time . '秒' . "<br>";
}
function test()
{
$arr = [];
for ($i = 0; $i < 1000; $i++) {
$arr[] = $i;
}
myshuffle($arr);
testshuffle($arr);
mushuffles($arr);
}
test();
//計算代碼執行的時間
function getmicrotime()
{
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
對比了下時間,系統內置的函數在數組長度由10變爲1000的時候幾乎時間沒有太大的延長,
可能面試官真的只是看你的思路,畢竟php內置的函數效率是經過測試的了,
實現Linux機器之間拷貝文件
使用scp命令拷貝
scp [email protected]:/opt/soft/nginx-0.5.38.tar.gz /opt/soft/
linux 中的awk命令是否熟悉