-
1 # 健一說說
-
2 # C語言基礎
學習資料結構與演算法,還是很有必要看幾本相關的書籍,但根據不同基礎的人,合適看的書也不一樣,因此,針對不同層次、不同語言的人,推薦幾本市面上口碑不錯的書。
1. 入門級
針對剛入門的同學,建議不要急著去看那些經典書,像《演算法導論》、《演算法》這些比較經典、權威的書。雖然書很好,但看起來很費勁,如果看不完,效果會很不好。所以建議先看兩本入門級的趣味書:
《大話資料結構》
《演算法圖解》
大話資料結構
將理論講的很有趣,不枯燥。作者結合生活中的例子去對每個資料結構和演算法進行講解,讓人通俗易懂。
演算法圖解
這是一本像小說一樣有趣的演算法入門書,書中有大量的圖解,通俗易懂。
看完上面一本或兩本入門級的書,你就會對資料結構和演算法有個大概認識和學習。但這些入門級的書缺少細節、不夠系統。所以想要深入的學習資料結構和演算法,光看這兩本書肯定是不夠的。
2. 不同語言的教科書
國內外很多大學都是將《資料結構和演算法分析》作為教科書。這本書非常系統、嚴謹、全面,難度適中,很適合對資料結構和演算法有些瞭解,並且已經掌握了至少一門語言的同學學習。針對不同的語言,分別有:
《資料結構與演算法分析:C語言描述》
《資料結構與演算法分析:C++描述》
《資料結構與演算法分析:java語言描述》
如果你不會C、C++、java,會Python或者JavaScript,可以看:
《資料結構與演算法JavaScript描述》
《資料結構與演算法:Python語言描述》
3. 面試書籍
現在很多大廠的面試都會考演算法題,這裡推薦幾本面試演算法書籍:
《劍指offer》
《程式設計珠璣》
《程式設計之美》
劍指offer
為面試演算法量身定做的一本書。幾乎包含了所有常見的、經典的面試題,如果能搞懂書裡面的內容,一般公司的演算法面試都應該沒問題。
程式設計珠璣
這本書豆瓣評分有9分,評分很高。這本書最大的特色是講了很多海量資料的處理技巧。其他演算法書籍很少涉及海量資料。
程式設計之美
有些作者是微軟工程師,演算法題目較難,比較適合要面試Google、Facebook這樣的公司的人去看。
4. 經典書籍
現在資料結構與演算法最經典的書籍就是:
《演算法導論》
《演算法》
《計算機程式設計藝術》
這三本書非常經典,但都很厚,看起來比較費勁,估計很少有人能全部看完。但如果想更深入地學一遍資料結構和演算法,還是建議去看看。
演算法導論
章節安排不是循序漸進,裡面有各種演算法正確性、複雜度的證明、推導,對數學功底有一定要求,看起來有些費勁。
演算法
偏重講演算法。內容不夠全面,對資料結構方面的知識講的不多,動態規劃這麼重要的知識點卻沒有講。
計算機程式設計藝術
這本書包括很多卷,相比於其他書籍有更好的深度、廣度、系統性和全面性。但如果你對資料結構和演算法不是特別感興趣,沒有很好的數學、演算法、計算機基礎,很難把這本書讀完、讀懂。
5. 課外閱讀
有些演算法書籍也比較適合在平時悠閒的時候翻翻看看:
《演算法帝國》
《數學之美》
《演算法之美》
這些書都列舉了大量的列子來解釋說明,非常通俗易懂
-
3 # 大學生程式設計指南
從事程式設計多年,程式設計新手一般喜歡糾結一個詞最好,但學習程式語言最忌諱“貪”。
如何理解這個貪字,新手習慣於找最好的程式語言,最好的入門書籍,程式碼最完善的入門資料,現在國內軟體行業已經非常成熟了,國內的程式設計軟體書籍質量已經得到了極大的提升,所以在選擇程式語言的書籍的時候是可以有很多種選擇了,有關C語言國內最原始的書籍當屬於譚浩強的C語言程式設計,而且因為當時由於條件限制這本書在很多細節方面值得商榷,但積極意義還是要大於本身的缺陷,國內第一代的程式設計師幾乎都是看著這本書學習程式設計的,歷史意義顯得更加積極一些。
C語言的書籍在國內範圍內選擇空間非常大,最簡單的方式直接在商城裡面尋找評價量最多的就夠了,畢竟現在大家在買書的時候的眼光已經提升了許多,沒有必要在這方面糾結太多,每種程式語言的側重點不是太一樣,但是在本質內容上沒有什麼太大的區別,所以選擇一門書制定嚴格的學習計劃就可以開始了,題目的關鍵是C語言的資料結構而且還要求帶原始碼的,只需要找一本C語言格式的資料結構書籍就可以了。
問題的關鍵在於需要先能把C語言掌握了,再去談資料結構模型的事情,有了C語言最基礎再去講究資料結構,直接去操作帶有程式碼的資料結構學習起來非常被動,還是回過頭來繼續學習C語言的語法,相當於對C語言學習的基礎語法進行實踐操作,適合剛剛學好基礎語法的初學者直接切入進去學習,玩轉資料結構之前最好先有指標的基礎,指標算是C語言裡面非常難的知識點,也是重點知識板塊之一,很多人在學習指標之後一頭霧水也是非常正常的事情,雖然程式設計講求的是實踐,但是理論理解也是非常重要一方面。
資料結構是未來程式設計中最基礎的抽象模型,如同設計一個模組就要設計其中的資料結構,這點和資料機構程式設計過程極其的相似,所以在學習了C語言不知道如何實踐的時候,可以直接透過資料結構來完成而且在操作的過程中不斷的提升對程式碼的認知,算是一個小型的實戰專案了。如何利用好書本中的程式碼,很多初學者直接照著書本程式碼敲到電腦裡,這種方法不是很有效。建議先了解基本的理論,掌握了理論之後開始自己寫程式碼無論這個過程如何的痛苦都要去經歷,然後再去看例項的程式碼,再回歸到自己寫程式碼,這個過程可以反覆。
回覆列表
要是要簡單易懂的,給你推薦一個有意思的《大話資料結構》很通俗易懂,適合c資料結構初學者,要是要稍有難度的,《資料結構演算法解析》清華出版的。
也可以看看Robert Sedgewick寫的書,簡單易懂,很好。