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