茄子在线看片免费人成视频,午夜福利精品a在线观看,国产高清自产拍在线观看,久久综合久久狠狠综合

    <s id="ddbnn"></s>
  • <sub id="ddbnn"><ol id="ddbnn"></ol></sub>

  • <legend id="ddbnn"></legend><s id="ddbnn"></s>

    PHP面試常用算法(推薦)
    來源:易賢網(wǎng) 閱讀:888 次 日期:2016-08-11 15:05:09
    溫馨提示:易賢網(wǎng)小編為您整理了“PHP面試常用算法(推薦)”,方便廣大網(wǎng)友查閱!

    下面小編就為大家?guī)硪黄狿HP面試常用算法(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。

    一、冒泡排序

    基本思想:

    對需要排序的數(shù)組從后往前(逆序)進行多遍的掃描,當(dāng)發(fā)現(xiàn)相鄰的兩個數(shù)值的次序與排序要求的規(guī)則不一致時,就將這兩個數(shù)值進行交換。這樣比較小(大)的數(shù)值就將逐漸從后面向前面移動。

    //冒泡排序

    <?php

      function mysort($arr)

      {

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

        {

          $isSort = false;

          for ($j=0; $j< count($arr) - $i - 1; $j++) 

          {

            if($arr[$j] < $arr[$j+1])

            {

              $isSort = true;

              $temp = $arr[$j];

              $arr[$j] = $arr[$j+1];

              $arr[$j+1] = $temp ;

            }

          }

          if($isSort)

          {

            break;

          }

        }

        return $arr;

      }

      $arr = array(3,1,2);

      var_dump(mysort($arr));

    ?>

    二、快速排序

    基本思想:

    在數(shù)組中挑出一個元素(多為第一個)作為標(biāo)尺,掃描一遍數(shù)組將比標(biāo)尺小的元素排在標(biāo)尺之前,將所有比標(biāo)尺大的元素排在標(biāo)尺之后,通過遞歸將各子序列分別劃分為更小的序列直到所有的序列順序一致。

    //快速排序

    <?php

      //快速排序

        function quick_sort($arr) 

        {

          //先判斷是否需要繼續(xù)進行

          $length = count($arr);

          if($length <= 1) 

          {

            return $arr;

          }

         

          $base_num = $arr[0];//選擇一個標(biāo)尺 選擇第一個元素

          //初始化兩個數(shù)組

          $left_array = array();//小于標(biāo)尺的

          $right_array = array();//大于標(biāo)尺的

          for($i=1; $i<$length; $i++) 

          {      //遍歷 除了標(biāo)尺外的所有元素,按照大小關(guān)系放入兩個數(shù)組內(nèi)

            if($base_num > $arr[$i]) 

            {

              //放入左邊數(shù)組

              $left_array[] = $arr[$i];

            } 

            else

            {

              //放入右邊

              $right_array[] = $arr[$i];

            }

          }

          //再分別對 左邊 和 右邊的數(shù)組進行相同的排序處理方式

          //遞歸調(diào)用這個函數(shù),并記錄結(jié)果

          $left_array = quick_sort($left_array);

          $right_array = quick_sort($right_array);

          //合并左邊 標(biāo)尺 右邊

          return array_merge($left_array, array($base_num), $right_array);

        }

        $arr = array(3,1,2);

        var_dump(quick_sort($arr));

    ?>

    三、二分查找

    基本思想:

    假設(shè)數(shù)據(jù)是按升序排序的,對于給定值x,從序列的中間位置開始比較,如果當(dāng)前位置值等于x,則查找成功;若x小于當(dāng)前位置值,則在數(shù)列的前半段中查找;若x大于當(dāng)前位置值則在數(shù)列的后半段中繼續(xù)查找,直到找到為止。(數(shù)據(jù)量大的時候使用)

    //二分查找

    <?php

      //二分查找

      function bin_search($arr,$low,$high,$k)

      {

        if($low <= $high)

        {

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

          if($arr[$mid] == $k)

          {

            return $mid;

          }

          else if($k < $arr[$mid])

          {

            return bin_search($arr,$low,$mid-1,$k);

          }

          else

          {

            return bin_search($arr,$mid+1,$high,$k);

          }

        }

        return -1;

      }

      $arr = array(1,2,3,4,5,6,7,8,9,10);

      print(bin_search($arr,0,9,3));

    ?>

    四、順序查找

    基本思想:

    從數(shù)組的第一個元素開始一個一個向下查找,如果有和目標(biāo)一致的元素,查找成功;如果到最后一個元素仍沒有目標(biāo)元素,則查找失敗。

    //順序查找 

    <?php

      //順序查找

      function seq_search($arr,$n,$k)

      {

        $array[$n] = $k;

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

        {

          if($arr[$i] == $k)

          {

            break;

          }

        }

        if($i < $n)

        {

          return $i;

        }

        else

        {

          return -1;

        }

      }

    ?>

    五、寫一個函數(shù),能夠遍歷一個文件下的所有文件和子文件夾

    <?php  

      function my_scandir($dir)

      {

        $files = array();

        if($handle = opendir($dir))

        {

          while (($file = readdir($handle))!== false) 

          {

            if($file != '..' && $file != '.')

            {

              if(is_dir($dir."/".$file))

              {

                $files[$file]=my_scandir($dir."/".$file);

              }

              else

              {

                $files[] = $file;

              }

            }

          }

          closedir($handle);

          return $files;

        }

      }

      var_dump(my_scandir('../'));

    ?>

    六、寫一個函數(shù),盡可能高效的從一個標(biāo)準(zhǔn)url中取出文件的擴展名

    <?php

      function getExt($url)

      {

        $arr = parse_url($url);//parse_url解析一個 URL 并返回一個關(guān)聯(lián)數(shù)組,包含在 URL 中出現(xiàn)的各種組成部分

        //'scheme' => string 'http' (length=4)

        //'host' => string 'www.sina.com.cn' (length=15)

        //'path' => string '/abc/de/fg.php' (length=14)

        //'query' => string 'id=1' (length=4)

        $file = basename($arr['path']);// basename函數(shù)返回路徑中的文件名部分

        $ext = explode('.', $file);

        return $ext[count($ext)-1];

      }

      print(getExt('http://www.sina.com.cn/abc/de/fg.html.php?id=1'));

    ?>

    七、實現(xiàn)中文字符串截取無亂碼的方法

    可使用mb_substr,但是需要確保在php.ini中加載了php_mbstring.dll,即確保“extension=php_mbstring.dll”這一行存在并且沒有被注釋掉,否則會出現(xiàn)未定義函 數(shù)的問題。

    以上這篇PHP面試常用算法(推薦)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考

    更多信息請查看網(wǎng)絡(luò)編程
    易賢網(wǎng)手機網(wǎng)站地址:PHP面試常用算法(推薦)
    由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

    2026上岸·考公考編培訓(xùn)報班

    • 報班類型
    • 姓名
    • 手機號
    • 驗證碼
    關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
    工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
    云南網(wǎng)警備案專用圖標(biāo)
    聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
    咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
    云南網(wǎng)警報警專用圖標(biāo)