演算法導論豆瓣
❶ 推薦一些關於演算法的書籍
1、數據結構與演算法分析:C語言描述(適合入門)
這本書相對於演算法導論要簡單一些,更適合入門。演算法導論其實有比較強的理論性,看起來比較吃力。
《數據結構與演算法分析:C語言描述》內容簡介:書中詳細介紹了當前流行的論題和新的變化,討論了演算法設計技巧,並在研究演算法的性能、效率以及對運行時間分析的基礎上考查了一些高級數據結構,從歷史的角度和近年的進展對數據結構的活躍領域進行了簡要的概括。由於《數據結構與演算法分析:C語言描述(原書第2版)》選材新穎,方法實用,題例豐富,取捨得當。《數據結構與演算法分析:C語言描述》的目的是培養學生良好的程序設計技巧和熟練的演算法分析能力,使得他們能夠開發出高效率的程序。從服務於實踐又鍛煉學生實際能力出發,書中提供了大部演算法的C程序和偽碼常式。
2、演算法設計與分析基礎(適合入門)
作者基於豐富的教學經驗,開發了一套對演算法進行分類的新方法。這套方法站在通用問題求解策略的高度,能對現有的大多數演算法都能進行准確分類,從而使本書的讀者能夠沿著一條清晰的、一致的、連貫的思路來探索演算法設計與分析這一迷人領域。本書作為第2版,相對第1版增加了新的習題,還增加了「迭代改進」一章,使得原來的分類方法更加完善。
3.0、演算法引論:一種創造性方法(適合入門)
和普通的演算法書不同,這本書從創造性的角度出發——如果說演算法導論講的是有哪些演算法,那麼演算法引論講的就是如何創造演算法。結合前面的演算法設計與分析基礎,這本書把能解決的演算法問題數量擴大了一個數量級。
3.1 演算法競賽 | 信息學奧賽一本通(算競入門)
AlphaWA同學推薦的入門書籍,網上沒有PDF版本,自己去淘寶買嘍。
3.2 演算法競賽 | 演算法競賽進階指南(算競進階)
❷ java數據結構書籍推薦
1. 入門級
針對剛入門的同學,建議不要急著去看那些經典書,像《演算法導論》、《演算法》這些比較經典、權威的書。雖然書很好,但看起來很費勁,如果看不完,效果會很不好。所以建議先看兩本入門級的趣味書:
《大話數據結構》
《演算法圖解》
《數據結構與演算法分析:C語言描述》
《數據結構與演算法分析:C++描述》
《數據結構與演算法分析:java語言描述》
《數據結構與演算法JavaScript描述》
《數據結構與演算法:Python語言描述》
《劍指offer》
《編程珠璣》
《編程之美》
《演算法導論》
《演算法》
《計算機程序設計藝術》
《演算法帝國》
《數學之美》
《演算法之美》
大話數據結構
將理論講的很有趣,不枯燥。作者結合生活中的例子去對每個數據結構和演算法進行講解,讓人通俗易懂。
演算法圖解
這是一本像小說一樣有趣的演算法入門書,書中有大量的圖解,通俗易懂。
看完上面一本或兩本入門級的書,你就會對數據結構和演算法有個大概認識和學習。但這些入門級的書缺少細節、不夠系統。所以想要深入的學習數據結構和演算法,光看這兩本書肯定是不夠的。
2. 不同語言的教科書
國內外很多大學都是將《數據結構和演算法分析》作為教科書。這本書非常系統、嚴謹、全面,難度適中,很適合對數據結構和演算法有些了解,並且已經掌握了至少一門語言的同學學習。針對不同的語言,分別有:
如果你不會C、C++、java,會Python或者JavaScript,可以看:
3. 面試書籍
現在很多大廠的面試都會考演算法題,這里推薦幾本面試演算法書籍:
劍指offer
為面試演算法量身定做的一本書。幾乎包含了所有常見的、經典的面試題,如果能搞懂書裡面的內容,一般公司的演算法面試都應該沒問題。
編程珠璣
這本書豆瓣評分有9分,評分很高。這本書最大的特色是講了很多海量數據的處理技巧。其他演算法書籍很少涉及海量數據。
編程之美
有些作者是微軟工程師,演算法題目較難,比較適合要面試Google、Facebook這樣的公司的人去看。
4. 經典書籍
現在數據結構與演算法最經典的書籍就是:
這三本書非常經典,但都很厚,看起來比較費勁,估計很少有人能全部看完。但如果想更深入地學一遍數據結構和演算法,還是建議去看看。
演算法導論
章節安排不是循序漸進,裡面有各種演算法正確性、復雜度的證明、推導,對數學功底有一定要求,看起來有些費勁。
演算法
偏重講演算法。內容不夠全面,對數據結構方面的知識講的不多,動態規劃這么重要的知識點卻沒有講。
計算機程序設計藝術
這本書包括很多卷,相比於其他書籍有更好的深度、廣度、系統性和全面性。但如果你對數據結構和演算法不是特別感興趣,沒有很好的數學、演算法、計算機基礎,很難把這本書讀完、讀懂。
5. 課外閱讀
有些演算法書籍也比較適合在平時悠閑的時候翻翻看看:
這些書都列舉了大量的列子來解釋說明,非常通俗易懂。
❸ 編程書籍入門必備
自學編程看什麼書?給你推薦一些
一、Python系列(3本)
如果你之前一點編程經驗都沒有,先看如下兩本:
1、《簡明Python教程》(A Byte of Python)
入門Python的絕佳Tutorial,從書的目錄便可以了解到作者Swaroop C H清晰的行文思路,以及對Python高超的駕馭能力。
豆瓣評分:8.8
2、《集體智慧編程》
以具體實例的方式來展示Python的編程技巧,受益良多。作者用非常直觀的方式向讀者展示了人工智慧和機器學習中的大量經典的演算法。更可貴的是,作者在展示演算法時所使用的例子都是網路中非常有代表性的場景,並且很多情況下還會結合一些實際運營的 Web 站點的數據作更進步闡釋。當然,作為一本實用型的書,少不了的是大量可運行的代碼。
豆瓣評分:9.0
3、《Python Cookbook中文版,第3版》
這本書可謂Python版《代碼大全》。有人說《代碼大全》這類書是字典,其實不盡然《代碼大全》是高手過招。《Cookbook》也如此,閱讀時總能讓你有一種:「哇塞,漂亮!」的感覺。能把 Cookbook 全部讀完,你的Python水平絕對發生質變。
豆瓣評分:9.3
二、Java語言系列(3本)
1、《Java核心技術·卷1:基礎知識(原書第9版)》
Java領域最有影響力和價值的著作之一,擁有20多年教學與研究經驗的資深Java技術專家撰寫,與《Java編程思想》齊名。
豆瓣評分: 8.3
2、《演算法 第四版》
Java 語言描述,演算法領域經典的參考書,全面介紹了關於演算法和數據結構的必備知識,並特別針對排序、搜索、圖處理和字元串處理進行了論述。書的內容非常多,可以說是Java程序員的必備書籍之一。
豆瓣評分:9.3
3、《數據結構與演算法分析:Java語言描述》
這本書真是非常好!個人感覺很適合給初學者入門看,裡面的分析數學公式恰到好處,沒有演算法導論的令人望而生畏,也沒有國內圖書的草草了事,既學習了數據結構又有剛剛好的演算法分析,很容易使人產生共鳴。
豆瓣評分:8.6
三、前端系列(4本)
1、《Java權威指南(第6版)》
淘寶前端團隊翻譯,這本書又叫犀牛書,號稱Java開發者的聖經,網上對此書評價很多,大概意思都是說這本書是一本Java文檔手冊,沒有完整看過一遍此書的都不能算是一名合格的前端工程師。
豆瓣評分:8.8
2、《Java高級程序設計(第3版)》
又稱紅寶書,雅虎首席前端架構師,YUI的作者Zakas出品。雖然書名帶了「高級」二字,但是講得也很基礎,而且行文風格很流暢,每一小節就像是一篇博客,讀起來並不枯燥,個人感覺比上面那本犀牛書可讀性更強。
豆瓣評分:9.3
3、《Java設計模式與開發實踐》
本書是在設計模式上的進一步擴充。一大特點就是結合實操,代碼完整能直接應用到實際開發中。
豆瓣評分:9.1
4、《Web性能權威指南》
本書是谷歌公司高性能團隊核心成員的權威之作,堪稱實戰經驗與規范解讀完美結合的產物。本書目標是涵蓋Web開發者技術體系中應該掌握的所有網路及性能優化知識。
豆瓣評分:8.8
❹ 哪本數據結構與演算法最好
國外很多經典的
(因為以前搞ACM時都是用的C/C++,所以推薦的都是偏這塊的)
演算法導論就不說了,圖文並茂。
數據結構與演算法分析 (豆瓣) C
數據結構與演算法分析 (豆瓣) C++
數據結構與演算法分析 (豆瓣) 同上本,英文版
Weiss 的這幾本書都不錯,如果想順便學 C++ Template,建議看C++版的(後兩本)
個人覺得最適合入門的應該是Robert Sedgewick的《Algorithms》,這本書也有中文版,Coursera上有相應的視頻:
演算法,第一部分:Coursera - Free Online Courses From Top Universities
演算法,第二部分:Coursera - Free Online Courses From Top Universities
還有本書配套網站:http://algs4.cs.princeton.e/home/
❺ 請教編程高手:如何培養編寫演算法的思路
選一本出色的教材.有條件就看英文的,然後給自己一個環境,例如LINUX+GCC+GDB,用純粹的語言去在解決問題的過程中學習演算法.
沒有目的性去學習,往往效率不高,可以找一些ONLINE JUDGE的題目做做.例如Welcome To PKU JudgeOnline,對著裡面的問題,先自己思考,嘗試編程解決,如果不能解決,就翻翻演算法書,想想為什麼.
如果還是不行,那就上網看看別人有沒有解決掉,怎麼做,看看他們用到什麼演算法,比對著,然後進一步自己去實現.
有時候對於演算法的問題的實現,你在實現之前也許會卡住,但是在編程過程中,隨著你的鍛煉和熟練度的提高.會有那麼一天你覺得什麼都通了,而且,你是在用的過程中學習.堅持走下去,一定事半功倍.
「cracking the coding interview」,題目是按照array, stack&queue, 鏈表,樹圖,遞歸這種章節安排的,每章節題目7-8個,不多,難度中等,找感覺很有幫助。第一遍自己寫不出來的話(我就是,這么弱!),畫圖分析,抄背默。一遍做完再做一遍,第二遍就快很多,理解也深刻了,所謂讀書百遍,其意自現,演算法也一樣。
不要一開始就看《演算法導論》,這本書有太多關於演算法的數學證明.
推薦你看看這本:演算法(第4版) (豆瓣),作者是高德納的學生:塞奇威克 (Robert Sedgewick)
書中演算法代碼主要是用Java編寫,裡面有大量的圖來讓你明白例如:排序,查找,樹和圖的演算法運行過程。
這本書的目錄編排也很清晰,他就告訴你演算法主要就可以分為:排序,查找,圖和字元串。從這4個方面可以演化出很多演算法,最關鍵是:這本書的作者不但是在告訴你what,而且告訴你why(分析各種演算法的優缺點)
這本書其他好的地方
比如講到快速排序,很多書可能講了快速排序的原理就完了。但這本書就直接講了原始的快速排序可以改進的地方:1. 在小數組上,切換到插入排序;2. 三取樣切分;3. 三向切分的快速排序。
優先隊列怎麼和排序演算法扯上關系呢?其實優先隊列就是可以用堆排序來實現,堆排序的時間復雜度和快速排序是一樣的,但是實際中為什麼堆排序的運行時間要比快速排序多呢?因為這和CPU的Cache命中率有關系,堆排序不符合演算法運行的局部性原則
比如書中2.5節,講了排序演算法的實際用途,這本書不光告訴你演算法的原理,還告訴你演算法的用途。
❻ Diff 演算法的原理是什麼,怎樣學習和理解
建議千萬不要一開始就看《演算法導論》,這本書有太多關於演算法的數學證明(如果你喜歡這種,那麼你就看這本)
我強烈你看看這本:演算法(第4版) (豆瓣),作者是高德納的學生:塞奇威克 (Robert Sedgewick)
去年我在准備校招面試的時候偶然發現這本書,我越看越著迷,書中演算法代碼主要是用Java編寫,裡面有大量的圖來讓你明白例如:排序,查找,樹和圖的演算法運行過程。
這本書的目錄編排也很清晰,他就告訴你演算法主要就可以分為:排序,查找,圖和字元串。從這4個方面可以演化出很多演算法。
我覺得最關鍵是:這本書的作者不但是在告訴你what,而且告訴你why(分析各種演算法的優缺點)
。
❼ 《演算法導論(原書第2版)》pdf下載在線閱讀,求百度網盤雲資源
《演算法導論(原書第2版)》([美] Thomas H.Cormen)電子書網盤下載免費在線閱讀
鏈接:
書名:演算法導論(原書第2版)
作者:[美] Thomas H.Cormen
譯者:潘金貴 等
豆瓣評分:9.3
出版社:機械工業出版社
出版年份:2006-9
頁數:754
內容簡介:
這本書深入淺出,全面地介紹了計算機演算法。對每一個演算法的分析既易於理解又十分有趣,並保持了數學嚴謹性。本書的設計目標全面,適用於多種用途。涵蓋的內容有:演算法在計算中的作用,概率分析和隨機演算法的介紹。書中專門討論了線性規劃,介紹了動態規劃的兩個應用,隨機化和線性規劃技術的近似演算法等,還有有關遞歸求解、快速排序中用到的劃分方法與期望線性時間順序統計演算法,以及對貪心演算法元素的討論。此書還介紹了對強連通子圖演算法正確性的證明,對哈密頓迴路和子集求和問題的NP完全性的證明等內容。全書提供了900多個練習題和思考題以及敘述較為詳細的實例研究。
作者簡介:
Thomas H.Cormen
達特茅斯學院計算機科學系副教授
Charles E.Leiserson
麻省理工學院計算機科學與電氣工程系教授
Ronald L.Rivest
麻省理工學院計算機科學系Andrew與Erna Viterbi具名教授
Clifford Stein
哥倫比亞大學工業工程與運籌學副教授
❽ 關於計算機的書籍有哪些好看的
計算機科學是一個龐大的學科體系,在學習的過程中要對這個體系的知識都有一定的了解,好看以及推薦一些書籍清單。數學,演算法和數據結構作為計算機科學的底層學科對於深入了解計算機運作模式等是必不可少的,深入理解計算機系統(CSAPP),名稱上來看這本書講的是對系統的深入挖掘,然而本書非常適合作為一個入門讀物,在了解計算機前開始閱讀,可以對計算機相關概念有一個簡要的了解。計算機程序的構造和解釋(SICP),本書講的是從數據抽象、過程抽象、迭代、高階函數等編程和控制系統復雜性的思想,到數據結構和演算法,到編譯器/解釋器、編程語言設計。演算法導論,MIT 的經典演算法教材,雖然可能其中的偽代碼表示法不適合所有的人輕松閱讀,但是對於演算法描述的地位依然非常靠前。具體數學》,本書介紹了計算機的數學基礎,內容涉及求和、取整函數、數論、二項式系數、特殊數、母函數(發生函數)、離散概率、漸近等,面向從事計算機科學、計算數學、計算技術諸方面。