生命不是要超越別人右核,而是要超越自己汉操。
前言
作為一個(gè)對(duì)算法沒有任何認(rèn)知,非科班出身的前端程序員蒙兰,如果想提高自己的能力磷瘤,不再只寫業(yè)務(wù)代碼當(dāng)一個(gè)應(yīng)用工程師,算法是必須掌握的一門本領(lǐng)搜变。算法也是一種思想采缚,當(dāng)你去讀一些優(yōu)秀框架的源碼,如果對(duì)算法和數(shù)據(jù)結(jié)構(gòu)一無所知挠他,讀起來很困難扳抽,你無法理解人家為什么要那樣寫,那樣寫的好處是什么,接下來就跟大家分享下作為一個(gè)前端程序員贸呢,如何學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)與算法镰烧。
后續(xù)將持續(xù)更新與算法相關(guān)的文章,分享自己所學(xué)以及踩的各種坑楞陷,歡迎各位感興趣的開發(fā)者持續(xù)關(guān)注??
什么是算法
算法就是計(jì)算或者解決問題的步驟怔鳖,算法與程序有些相似,區(qū)別在于程序是以計(jì)算機(jī)能夠理解的編程語(yǔ)言編寫而成的固蛾,可以在計(jì)算機(jī)上運(yùn)行结执,而算法是以人類能夠理解的方式描述的,用于編寫程序之前艾凯。不過献幔,在這個(gè)過 程中到哪里為止是算法、從哪里開始是程序趾诗,并沒有明確的界限蜡感。
就算使用同一個(gè)算法,編程語(yǔ)言不同恃泪,寫出來的程序也不同;即便使用相同的編程語(yǔ)言铸敏, 寫程序的人不同,那么寫出來的程序也是不同的悟泵。
數(shù)據(jù)結(jié)構(gòu)與算法的作用
計(jì)算機(jī)是一個(gè)冰冷的機(jī)器杈笔,操作者下發(fā)什么指令,計(jì)算機(jī)就會(huì)執(zhí)行什么操作
開發(fā)者要做的只是如何把實(shí)際問題轉(zhuǎn)換成計(jì)算機(jī)可識(shí)別的指令糕非,如何轉(zhuǎn)化蒙具?《數(shù)據(jù)結(jié)構(gòu)》的經(jīng)典說法:設(shè)計(jì)出數(shù)據(jù)結(jié)構(gòu),在施加以算法就行了朽肥。
開發(fā)者編寫的指令好壞禁筏,將直接影響到程序的性能,指令又由數(shù)據(jù)結(jié)構(gòu)和算法組成衡招,因此數(shù)據(jù)結(jié)構(gòu)和算法的設(shè)計(jì)與最終程序的好壞息息相關(guān)篱昔。
入門書籍以及學(xué)習(xí)路線
入門書籍推薦
-
《學(xué)習(xí)JavaScript數(shù)據(jù)結(jié)構(gòu)與算法》 第3版
image -
《我的第一本算法書》
image -
《數(shù)據(jù)結(jié)構(gòu)與算法圖解》
image -
《大話數(shù)據(jù)結(jié)構(gòu)》
image
學(xué)習(xí)路線推薦
- 先學(xué)習(xí)《我的第一本算法書》
書中沒有使用任何編程語(yǔ)言,有豐富的配圖來講解算法和數(shù)據(jù)結(jié)構(gòu)始腾,作為一個(gè)小白州刽,看這本書最為合適。
- 再學(xué)習(xí)《學(xué)習(xí)JavaScript數(shù)據(jù)結(jié)構(gòu)與算法》 第3版
本書從js角度出發(fā)浪箭,講解常用算法和數(shù)據(jù)結(jié)構(gòu)穗椅。相對(duì)于前端而言,這本書可以讓你理解算法和數(shù)據(jù)結(jié)構(gòu)在前端的應(yīng)用奶栖。
- 最后學(xué)習(xí)《數(shù)據(jù)結(jié)構(gòu)與算法圖解》和《大話數(shù)據(jù)結(jié)構(gòu)》
這兩本書采用其他編程語(yǔ)言講解匹表,學(xué)習(xí)完前兩本書后门坷,再來看兩本書可以更深層次的理解算法。
算法題目的選擇與練習(xí)
- 《劍指offer》
可以在書中學(xué)習(xí)很多經(jīng)典題目袍镀,練的多了會(huì)總結(jié)出每種算法的規(guī)律默蚌,掌握書中的內(nèi)容后,再去解leetcode上的題會(huì)輕松很多苇羡。
- 刷leetcode
先從簡(jiǎn)單的題開始解绸吸,慢慢進(jìn)入中等難度。中等的題目可以解決時(shí)宣虾,已經(jīng)對(duì)典型題目有了很深的見解,此時(shí)再去解決更復(fù)雜的問題時(shí)温数,就可以活學(xué)活用绣硝,根據(jù)規(guī)律來解決問題。
相關(guān)文章以及網(wǎng)站推薦
前端該如何準(zhǔn)備數(shù)據(jù)結(jié)構(gòu)和算法
寫在最后
- 文中如有錯(cuò)誤撑刺,歡迎在評(píng)論區(qū)指正鹉胖,如果這篇文章幫到了你,歡迎點(diǎn)贊和關(guān)注??
- 本文首發(fā)于掘金够傍,未經(jīng)許可禁止轉(zhuǎn)載??