• php算法面試題

    時間:2022-06-28 04:30:28 面試 我要投稿
    • 相關推薦

    php算法面試題

    1. 使用PHP描述冒泡排序和快速排序算法,對象可以是一個數組

    php算法面試題

    2. 使用PHP描述順序查找和二分查找(也叫做折半查找)算法,順序查找必須考慮效率,對象可以是一個有序數組

    3. 寫一個二維數組排序算法函數,能夠具有通用性,可以調用php內置函數

    【附答案】(以下答案不一定是最好的,只是一個簡單的參考)

    一、基礎題

    1. 相等 相等 不相等

    2. true true true true true false true false

    3. aaaaaa

    4. 5 0 1

    5. 5 2

    6. 1 2

    7. 使用五種以上方式獲取一個文件的擴展名

    function get_ext1($file_name){

    return strrchr($file_name, ‘.’);

    }

    function get_ext2($file_name){

    return substr($file_name, strrpos($file_name, ‘.’));

    }

    function get_ext3($file_name){

    return array_pop(explode(‘.’, $file_name));

    }

    function get_ext4($file_name){

    $p = pathinfo($file_name);

    return $p['extension'];

    }

    function get_ext5($file_name){

    return strrev(substr(strrev($file_name), 0, strpos(strrev($file_name), ‘.’)));

    }

    二、算法題

    1. 使用PHP描述冒泡排序和快速排序算法,對象可以是一個數組

    //冒泡排序(數組排序)

    function bubble_sort($array)

    {

    $count = count($array);

    if ($count <= 0) return false;

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

    for($j=$count-1; $j>$i; $j–){

    if ($array[$j] < $array[$j-1]){

    $tmp = $array[$j];

    $array[$j] = $array[$j-1];

    $array[$j-1] = $tmp;

    }

    }

    }

    return $array;

    }

    //快速排序(數組排序)

    function quick_sort($array) {

    if (count($array) <= 1) return $array;

    $key = $array[0];

    $left_arr = array();

    $right_arr = array();

    for ($i=1; $i

    if ($array[$i] <= $key)

    $left_arr[] = $array[$i];

    else

    $right_arr[] = $array[$i];

    }

    $left_arr = quick_sort($left_arr);

    $right_arr = quick_sort($right_arr);

    return array_merge($left_arr, array($key), $right_arr);

    }

    2. 使用PHP描述順序查找和二分查找(也叫做折半查找)算法,順序查找必須考慮效率,對象可以是一個有序數組

    //二分查找(數組里查找某個元素)

    function bin_sch($array, $low, $high, $k){

    if ($low <= $high){

    $mid = intval(($low+$high)/2);

    if ($array[$mid] == $k){

    return $mid;

    }elseif ($k < $array[$mid]){

    return bin_sch($array, $low, $mid-1, $k);

    }else{

    return bin_sch($array, $mid+1, $high, $k);

    }

    }

    return -1;

    }

    //順序查找(數組里查找某個元素)

    function seq_sch($array, $n, $k){

    $array[$n] = $k;

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

    if($array[$i]==$k){

    break;

    }

    }

    if ($i<$n){

    return $i;

    }else{

    return -1;

    }

    }

    3. 寫一個二維數組排序算法函數,能夠具有通用性,可以調用php內置函數

    //二維數組排序, $arr是數據,$keys是排序的健值,$order是排序規則,1是升序,0是降序

    function array_sort($arr, $keys, $order=0) {

    if (!is_array($arr)) {

    return false;

    }

    $keysvalue = array();

    foreach($arr as $key => $val) {

    $keysvalue[$key] = $val[$keys];

    }

    if($order == 0){

    asort($keysvalue);

    }else {

    arsort($keysvalue);

    }

    reset($keysvalue);

    foreach($keysvalue as $key => $vals) {

    $keysort[$key] = $key;

    }

    $new_array = array();

    foreach($keysort as $key => $val) {

    $new_array[$key] = $arr[$val];

    }

    return $new_array;

    }


    【php算法面試題】相關文章:

    php初級面試題06-28

    微軟算法面試題06-28

    php高級程序員面試題推薦07-13

    求java,PHP,android,iOS,linux面試題07-13

    JAVA算法面試題:哪位高人會做?07-13

    淘寶面試題求解--數據挖掘-算法07-13

    入門級PHP程序員面試題07-09

    程序員面試題-求Fibonacci數列[算法]07-13

    公司面試題之:騰訊PHP工程師筆試題07-13

    程序員面試題精選100題-字符串的組合[算法]07-13

    黄频国产免费高清视频_富二代精品短视频在线_免费一级无码婬片aa_精品9E精品视频在线观看