成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

PHPer面試指南-算法篇

SimpleTriangle / 1502人閱讀

摘要:快速排序快速排序是對冒泡排序的一種改進。獲取中間數(shù)兩值相等,返回元素比目標(biāo)大,查找左部元素比目標(biāo)小,查找右部查找失敗擴展閱讀冒泡排序?qū)崿F(xiàn)快速排序?qū)崿F(xiàn)各種經(jīng)典算法常見算法面試篇實現(xiàn)二分查找法

本書的 GitHub 地址:https://github.com/todayqq/PH...

算法可以說是大廠的必考題,對于算法,一定要理解其中的精髓、原理。

冒泡排序

冒泡排序的原理:一組數(shù)據(jù),比較相鄰數(shù)據(jù)的大小,將值小數(shù)據(jù)在前面,值大的數(shù)據(jù)放在后面。

function bubble_sort($arr)  
{  
    $count = count($arr);  
    if (0 == $count) {
        return false;  
    }

    for($i = 0; $i < $count; $i++){  
        for($j = 0; $j< $count-1-$i; $j++){
            if($arr[$j] > $arr[$j+1]){
                $temp        = $arr[$j];
                $arr[$j]     = $arr[$j+1];
                $arr[$j+1]   = $temp;
           }
      }
    }  
    return $arr;  
} 

這樣的一個數(shù)組 array(6, 3, 8, 2, 9, 1),排序過程是怎樣的?細節(jié)問題不在過多論述,有興趣可以從擴展閱讀中尋找答案。

快速排序

快速排序是對冒泡排序的一種改進。

實現(xiàn)思想是:通過一趟排序?qū)⒋庞涗浄指畛瑟毩⒌膬刹糠?,其中一部分的關(guān)鍵字均比另一部分記錄的關(guān)鍵字小,則可分別對這兩部分記錄繼續(xù)進行快速排序,整個排序過程可以遞歸進行,以達到整個序列有序的目的。

簡單來說就是:找到當(dāng)前數(shù)組中的任意一個元素(一般選擇第一個元素),作為標(biāo)的,新建兩個空數(shù)組,遍歷整個數(shù)組元素,如果遍歷到的元素比當(dāng)前的元素要小,那么就放到左邊的數(shù)組,否則放到右面的數(shù)組,然后再對新數(shù)組進行同樣的操作。

function quick_sort($arr) {
    $count = count($arr);
    if(1 >= $count) {
        return arr;
    }

    $base_num = $arr[0]; //選擇標(biāo)的
    $left_array = array();//小于標(biāo)的
    $right_array = array();//大于標(biāo)的

    for($i = 1; $i < $count; $i++) {
        if($base_num > $arr[$i]) {
            $left_array[] = $arr[$i];
        } else {
            $right_array[] = $arr[$i];
        }
    }
    //再分別對左邊和右邊的數(shù)組,進行相同的排序處理方式
    $left_array = quick_sort($left_array);
    $right_array = quick_sort($right_array);

    //最終合并
    return array_merge($left_array, array($base_num), $right_array);
}

二分查找(折半查找)

實現(xiàn)思想:將表中間位置記錄的關(guān)鍵字與查找關(guān)鍵字比較,如果兩者相等,則查找成功;否則利用中間位置記錄將表分成前、后兩個子表,如果中間位置記 錄的關(guān)鍵字大于查找關(guān)鍵字,則進一步查找前一子表,否則進一步查找后一子表。

function binSearch($arr, $target){  
    $height = count($arr)-1;  
    $low = 0;  

    while($low <= $height){  
        $mid = floor(($low+$height)/2);//獲取中間數(shù)

        //兩值相等,返回 
        if($arr[$mid] == $target){  
            return $mid; 

        //元素比目標(biāo)大,查找左部 
        } elseif ($arr[$mid] < $target){
            $low = $mid + 1;  

        //元素比目標(biāo)小,查找右部
        } elseif ($arr[$mid] > $target){  
            $height = $mid - 1;  
        }  
    }  
    return "查找失敗";  
}
擴展閱讀

PHP 冒泡排序

php實現(xiàn)快速排序

PHP實現(xiàn)各種經(jīng)典算法

PHP常見算法-面試篇

php實現(xiàn)二分查找法

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/28156.html

相關(guān)文章

  • PHPer 面試指南-擴展閱讀資源整理

    摘要:前端篇收集的前端面試題和答案前端開發(fā)面試題史上最全的前端面試題匯總及答案前端工程師手冊協(xié)議工作原理協(xié)議運行機制的概述協(xié)議篇原理原理解析的工作原理與的區(qū)別理解后端篇年的面試總結(jié)垃圾回收機制面向?qū)ο笤O(shè)計淺談?wù)f清楚是什么和的區(qū)別索引原理及慢查 前端篇 收集的前端面試題和答案 前端開發(fā)面試題 史上最全的web前端面試題匯總及答案 前端工程師手冊 HTTP協(xié)議:工作原理 SSL/TLS協(xié)議運行...

    wemall 評論0 收藏0
  • PHPer面試指南-前言

    摘要:先說一下面試時的心態(tài),剛?cè)腴T的程序員,技術(shù)實力不高,又大多不善言談,面試一旦遇到難題,很容易心態(tài)失衡驚慌失措語無倫次,最終丟掉了。其實大可不必,心態(tài)坦然,是面試必備的一點。 本書的 GitHub 地址:https://github.com/todayqq/PH... 作為一位程序員,面試過多次,也面試過很多人,最近又在找工作,總結(jié)一下面試經(jīng)驗和面試題,希望可以幫到正在找工作的小伙伴們...

    includecmath 評論0 收藏0
  • PHPer面試指南-協(xié)議

    摘要:地址每次面試多多少少都會被問到等等之類協(xié)議,協(xié)議相關(guān)的問題也可以說是面試必備,所以我把這些知識單獨收集成了一篇文章。即標(biāo)志位和標(biāo)志位均為。發(fā)送完畢后,服務(wù)器端進入狀態(tài)。認證服務(wù)器對客戶端進行認證以后,確認無誤,同意發(fā)放令牌。 Git 地址:https://github.com/todayqq/PH... 每次面試多多少少都會被問到 HTTP、HTTPS、TCP、Socket、 OAu...

    megatron 評論0 收藏0
  • PHPer面試指南-PHP

    摘要:本書的地址篇收集了一些常見的基礎(chǔ)進階面試題,基礎(chǔ)的面試題不再作答。如何實現(xiàn)持久化持久化,將在內(nèi)存中的的狀態(tài)保存到硬盤中,相當(dāng)于備份數(shù)據(jù)庫狀態(tài)。相當(dāng)于備份數(shù)據(jù)庫接收到的命令,所有被寫入的命令都是以的協(xié)議格式來保存的。 本書的 GitHub 地址:https://github.com/todayqq/PH... PHP 篇收集了一些常見的基礎(chǔ)、進階面試題,基礎(chǔ)的面試題不再作答。 基礎(chǔ)篇 ...

    stackvoid 評論0 收藏0
  • PHPer面試指南-Web

    摘要:擴展閱讀收集的前端面試題和答案前端開發(fā)面試題史上最全的前端面試題匯總及答案前端工程師手冊協(xié)議工作原理協(xié)議運行機制的概述 本書的 GitHub 地址:https://github.com/todayqq/PH... 對于大公司,很少會有全棧工程師這個崗位,全棧是個花哨的詞,對于現(xiàn)在比較熱門的技術(shù),不論是 Vue 還是 Laravel,只要智商不差,看著文檔,都能寫出一個 CURD 來,...

    cnio 評論0 收藏0

發(fā)表評論

0條評論

SimpleTriangle

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<