面試小節

自定義實現內置的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命令是否熟悉

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章