轉(zhuǎn)帖|行業(yè)資訊|編輯:郝浩|2016-10-08 10:23:59.000|閱讀 816 次
概述:剛進(jìn)入編程領(lǐng)域的初學(xué)者如何學(xué)習(xí)算法呢?本文的知乎答友會(huì)幫助你解決這樣的困惑。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
我個(gè)人推薦《算法導(dǎo)論》,但不是一上來就看,我想強(qiáng)調(diào)的有如下幾點(diǎn):
不管是計(jì)算機(jī)專業(yè),還是其它專業(yè)想自學(xué)算法,學(xué)習(xí)的路線大致是這樣的:
沒有微積分極限,收斂等概念,怎么去理解算法中時(shí)間復(fù)雜度,空間復(fù)雜度的概念;不懂矩陣算法中的圖算法怎么去入手,不懂概率論隨機(jī)算法應(yīng)該不好學(xué),時(shí)間復(fù)雜度估計(jì)算不來。學(xué)習(xí)書籍可參考學(xué)校設(shè)的相關(guān)課程,概率論的話推薦一本書:概率論與數(shù)理統(tǒng)計(jì) (豆瓣)。這三門基礎(chǔ)課是一定要學(xué)好的。
離散數(shù)學(xué)里面有算法,計(jì)數(shù),歸納等基本概念,圖論里更是囊括了樹,圖和流的所有理論知識(shí),這些是樹,圖,流等算法的基礎(chǔ)。離散數(shù)學(xué)推薦書籍:離散數(shù)學(xué)及其應(yīng)用 (豆瓣),圖論推薦書籍:圖論 (豆瓣)。
數(shù)學(xué)畢竟只是理論,還得有實(shí)際的編程工具,推薦學(xué)一門入門的編程語言,C語言最佳(也有高校一上來就學(xué)C++或者java的,個(gè)人不推薦),還有數(shù)據(jù)結(jié)構(gòu)更是重中之重,這是你能把樹,圖能用計(jì)算機(jī)語言表達(dá)出來的基礎(chǔ),我敢說,叫你實(shí)現(xiàn)一顆簡單的二叉樹,你都不一定能寫出來,那你還談學(xué)什么算法,數(shù)據(jù)結(jié)構(gòu)推薦書籍:數(shù)據(jù)結(jié)構(gòu) (豆瓣),C語言和數(shù)據(jù)結(jié)構(gòu)可以在學(xué)習(xí)上述數(shù)學(xué)知識(shí)之中穿插著一起學(xué)。
其實(shí)通過階段一,階段二的學(xué)習(xí),已經(jīng)基本掌握了算法相關(guān)的所有知識(shí)了,那還缺什么呢?系統(tǒng)學(xué)習(xí)算法,而《算法導(dǎo)論》就能很好的給我們一個(gè)學(xué)習(xí)算法的大框架,深入其中吧,你會(huì)發(fā)現(xiàn)上面講的內(nèi)容你是那么熟悉,但是你的收獲又是那么多。在整個(gè)過程,可結(jié)合《算法設(shè)計(jì)》這本書一起學(xué),《算法導(dǎo)論》看不懂內(nèi)容的去《算法設(shè)計(jì)》上看,兩本互補(bǔ)。
到這兒已經(jīng)沒有什么方法而言了,就是多練習(xí),彌補(bǔ)不懂的知識(shí),繼續(xù)練習(xí),練習(xí)題可參考網(wǎng)上的一些算法題集,如leetcode或者ACM題或者各大互聯(lián)網(wǎng)公司筆試面試題。個(gè)人推薦兩本書籍:編程珠璣 (豆瓣),編程之美 (豆瓣),兩本書都有一定難度,但是如果前幾個(gè)階段都能做好的話,你獲得的一定是趣味。
最后,還是要強(qiáng)調(diào)一點(diǎn),也是我反復(fù)強(qiáng)調(diào)的,厚積才能薄發(fā),不要浮躁,不要想著看一本書就把算法學(xué)好,算法是貫穿整個(gè)編程生涯的,畢竟這個(gè)式子不是說著玩的:程序=算法+數(shù)據(jù)結(jié)構(gòu)。 希望大家能靜下心來,從最基礎(chǔ)的數(shù)學(xué)知識(shí)和數(shù)據(jù)結(jié)構(gòu)學(xué)起,不要貪多,學(xué)扎實(shí)才是王道。希望大家都能把算法學(xué)好,能寫出高質(zhì)量的代碼,與大家一同進(jìn)步,共勉。
本答案來自-
了解更多對編程的算法有幫助的工具>>
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn