成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

PHPer面試指南-算法篇

SimpleTriangle / 1527人閱讀

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

本書(shū)的 GitHub 地址:https://github.com/todayqq/PH...

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

冒泡排序

冒泡排序的原理:一組數(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;  
} 

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

快速排序

快速排序是對(duì)冒泡排序的一種改進(jìn)。

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

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

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];
        }
    }
    //再分別對(duì)左邊和右邊的數(shù)組,進(jìn)行相同的排序處理方式
    $left_array = quick_sort($left_array);
    $right_array = quick_sort($right_array);

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

二分查找(折半查找)

實(shí)現(xiàn)思想:將表中間位置記錄的關(guān)鍵字與查找關(guān)鍵字比較,如果兩者相等,則查找成功;否則利用中間位置記錄將表分成前、后兩個(gè)子表,如果中間位置記 錄的關(guān)鍵字大于查找關(guān)鍵字,則進(jìn)一步查找前一子表,否則進(jì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 "查找失敗";  
}
擴(kuò)展閱讀

PHP 冒泡排序

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

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

PHP常見(jiàn)算法-面試篇

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

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/28156.html

相關(guān)文章

  • PHPer 面試指南-擴(kuò)展閱讀資源整理

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

    wemall 評(píng)論0 收藏0
  • PHPer面試指南-前言

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

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

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

    megatron 評(píng)論0 收藏0
  • PHPer面試指南-PHP

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

    stackvoid 評(píng)論0 收藏0
  • PHPer面試指南-Web

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

    cnio 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

SimpleTriangle

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<