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

資訊專欄INFORMATION COLUMN

PHP面試之四:邏輯與算法

smartlion / 561人閱讀

摘要:數(shù)據(jù)結(jié)構(gòu)常見數(shù)據(jù)結(jié)構(gòu)數(shù)組是最簡單而且應(yīng)用最廣泛的數(shù)據(jù)結(jié)構(gòu)特征使用連續(xù)內(nèi)存空間來存儲(chǔ)存放相同類型或著衍生類型的元素?cái)?shù)組比較特別,可以存放八種數(shù)據(jù)類型通過下標(biāo)來訪問集合特征保存不重復(fù)的元素字典特征就是關(guān)聯(lián)數(shù)組,以形式存儲(chǔ)棧,與隊(duì)列相似特征存儲(chǔ)數(shù)

數(shù)據(jù)結(jié)構(gòu)

常見數(shù)據(jù)結(jié)構(gòu)

Array 數(shù)組是 最簡單 而且 應(yīng)用最廣泛 的數(shù)據(jù)結(jié)構(gòu)

特征:
1、使用連續(xù)內(nèi)存空間來存儲(chǔ)
2、存放相同類型或著衍生類型的元素(PHP數(shù)組比較特別,可以存放八種數(shù)據(jù)類型)
3、通過下標(biāo)來訪問

Set 集合

特征:
1、保存不重復(fù)的元素

Map 字典

特征:
1、就是PHP關(guān)聯(lián)數(shù)組,以Key/Value形式存儲(chǔ)

Stack 棧,與隊(duì)列相似

特征:
1、存儲(chǔ)數(shù)據(jù)是先進(jìn)先出,棧只有一個(gè)出口,只能從棧頂部添加和刪除元素

Heap 堆,與二叉樹的數(shù)據(jù)結(jié)構(gòu)相似

特性:
1、子節(jié)點(diǎn)的鍵值和索引總小于他的父節(jié)點(diǎn)

list 線性表,由零個(gè)或多個(gè)數(shù)據(jù)元素組成的有序序列

特性:
1、線性表是一個(gè)序列,在PHP中就是索引數(shù)組

Queue 隊(duì)列

特性:
1、先進(jìn)先出,并發(fā)中使用,可以安全地將對(duì)象從一個(gè)任務(wù)傳給另一個(gè)任務(wù),可以使用PHP數(shù)組模擬

如何模擬雙向鏈表?

使用數(shù)組Array來實(shí)現(xiàn)
array_shift() / array_unshift()
array_pop() / array_push()
其它邏輯算法

重點(diǎn):找出算法的規(guī)律,再用代碼來實(shí)現(xiàn)

模擬PHP內(nèi)置函數(shù)來實(shí)現(xiàn)某些功能

不使用PHP內(nèi)置函數(shù)的前提下,實(shí)現(xiàn)字符串翻轉(zhuǎn)

function str_rev($str){

    for($i=0;true;$i++){
        if(!isset($str[$i])){
            break;
        }
    }
    $return = "";
    for($j=$i-1;$j>=0;$j--){
        $return .= $str[$j];
    }
    return $return;
}
常見算法考點(diǎn)

算法是什么?

是一種解決問題的計(jì)算方法,一個(gè)問題有多種算法來解決,每種算法效率都不同,根據(jù)需求選擇最優(yōu)算法

時(shí)間復(fù)雜度和空間復(fù)雜度

作用:用于 評(píng)定 某算法 是否合適?是否高效?


時(shí)間復(fù)雜度執(zhí)行算法所需要的時(shí)間
空間復(fù)雜度執(zhí)行算法所需要的內(nèi)存空間

常見時(shí)間復(fù)雜度 例如:常數(shù)階O(1)、線性階O(n)、平方階O(n^2)、立方階O(n^3)、對(duì)數(shù)階O(log2n)、nlog2n階O(nlog2n)、指數(shù)階O(n^n)

效率從大到?。篛(1) > O(log2n) > O(n) > O(nlog2n) > O(n^2) > O(n^3) > O(2^n) > O(n!) > O(n^n)

時(shí)間復(fù)雜度計(jì)算方式:得出算法的計(jì)算次數(shù)(空間復(fù)雜度與之類似)
用1來取代說有確定次數(shù)的加法

常見排序算法

冒泡排序、直接插入排序、希爾排序、選擇排序、快速排序、歸并排序、堆排序

冒泡排序
               最壞情況        平均情況
時(shí)間復(fù)雜度      O(n^2)         O(n^2)
空間復(fù)雜度      O(1)

直接插入排序
               最壞情況        平均情況
時(shí)間復(fù)雜度      O(n^2)         O(n^2)
空間復(fù)雜度      O(1)

希爾排序
               最壞情況        平均情況
時(shí)間復(fù)雜度      O(n^2)         O(nlog2n)
空間復(fù)雜度      O(1)

選擇排序
               最壞情況        平均情況
時(shí)間復(fù)雜度      O(n^2)         O(n^2)
空間復(fù)雜度      O(1)

快速排序
               最壞情況        平均情況
時(shí)間復(fù)雜度      O(n^2)         O(nlog2n)
空間復(fù)雜度      O(n)           O(log2n)

歸并排序
               最壞情況        平均情況
時(shí)間復(fù)雜度      O(nlog2n)         O(nlog2n)
空間復(fù)雜度      O(n)

堆排序
               最壞情況        平均情況
時(shí)間復(fù)雜度      O(nlog2n)      O(nlog2n)
空間復(fù)雜度      O(1)

常見查找算法

二分查找、順序查找

二分查找        最壞情況        平均情況
時(shí)間復(fù)雜度      O(log2n)       O(log2n)
空間復(fù)雜度      迭代O(1)       遞歸O(log2n)

順序查找        最壞情況        平均情況
時(shí)間復(fù)雜度      O(n)           O(n)
空間復(fù)雜度      O(1)

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

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

相關(guān)文章

  • Codeigniter 4.0-dev 版源碼學(xué)習(xí)筆記之四——詳細(xì)路由過程

    摘要:行,判斷如果為空,那么返回默認(rèn)路由。行,把處理完畢后找到的返回。方法該方法是自動(dòng)按著約定規(guī)則去目錄去找路由的過程。此文可以轉(zhuǎn)載,但轉(zhuǎn)載前需要發(fā)郵件到進(jìn)行溝通,未溝通的均視作侵權(quán)。 前言 我個(gè)人覺得在當(dāng)前 MVC 流行的架構(gòu)下,要想去了解一個(gè)框架,或者是一個(gè)基于此架構(gòu)下的應(yīng)用程序,最好的入手方式就是先看路由,雖然路由不是 MVC 里的任何一個(gè),但是知道了路由的來龍去脈就知道了整個(gè)框架或者...

    NSFish 評(píng)論0 收藏0
  • 面試系列】之四:關(guān)于原生dom操作

    摘要:指向后一個(gè)同輩元素的元素版。復(fù)制后返回的節(jié)點(diǎn)副本屬于文檔所有,但并沒有為它指定父節(jié)點(diǎn)。生成結(jié)束秒鐘后,將個(gè)顛倒過來,內(nèi)容也就變成了。 之四:關(guān)于原生dom操作 下周被內(nèi)推了百度糯米的面試,決定趁這個(gè)周末惡補(bǔ)下原生的js基礎(chǔ),感覺自己被jQuery慣壞了吧!前兩天聽首頁部同組的大牛師兄說:其實(shí)還是js基礎(chǔ)重要,不要盲目追求新技術(shù),基礎(chǔ)練好了就像把自己的內(nèi)功修煉好,內(nèi)功扎實(shí)才能修煉好武功秘...

    hatlonely 評(píng)論0 收藏0
  • PHP面試??贾O(shè)計(jì)模式——策略模式

    摘要:策略模式介紹策略模式定義了一系列的算法,并將每一個(gè)算法封裝起來,而且使它們還可以相互替換。策略模式讓算法獨(dú)立于使用它的客戶而獨(dú)立變化。使用策略模式的好處策略模式提供了管理相關(guān)的算法族的辦法。使用策略模式可以避免使用多重條件轉(zhuǎn)移語句。 你好,是我琉憶,PHP程序員面試筆試系列圖書的作者。 本周(2019.3.11至3.15)的一三五更新的文章如下: 周一:PHP面試??贾O(shè)計(jì)模式——工...

    Drinkey 評(píng)論0 收藏0
  • 前端周報(bào):前端面試題及答案總結(jié);JavaScript參數(shù)傳遞的深入理解

    摘要:前端面試題及答案總結(jié)掘金技術(shù)征文金三銀四,金九銀十,用來形容求職最好的幾個(gè)月。因?yàn)榈拇嬖?,至少在被?biāo)準(zhǔn)化的那一刻起,就支持異步編程了。然而異步編程真正發(fā)展壯大,的流行功不可沒。 showImg(https://segmentfault.com/img/bVVQOH?w=640&h=319); 1、2017前端面試題及答案總結(jié) |掘金技術(shù)征文 金三銀四,金九銀十,用來形容求職最好的幾個(gè)月...

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

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

0條評(píng)論

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