推薦@peng_gong的我的演算法學習之路
。該文裡提及了不少通用的資料結構與演算法教材,以及作者閱讀的體會。
如果文中的演算法書都能hold住了,再接下兩板斧:mit的advanced data structures和advanced algorithms兩門課。另外還有一本advanced data structures: peter brass: 9780521880374: amazon.com: books
,難度比mit兩門課小不少,篇幅適當,也講了一些有趣的話題(****** data structures dynamic/persistent, etc)
【領域特定篇】
purely functional data structures: chris okasaki: 9780521663502: amazon.com: books
pearls of functional algorithm design: 9780521513388: computer science books @ amazon.com
對函式式語言程式設計師有用。
分布式演算法書。篇幅短,介紹直白。
hacker's delight (2nd edition): 9780321842688: computer science books @ amazon.com
位運算黑魔法教材,對底層感興趣的程式設計師可以看下。
algorithms on strings: maxime crochemore, christophe hancart, thierry lecroq: 9781107670990: amazon.com: books
parsing techniques: a practical guide (monographs in computer science): dick grune, ceriel j.h. jacobs: 9780387202488: amazon.com: books
做字串處理有用。
foundations of multidimensional and metric data structures (the morgan kaufmann series in computer graphics): hanan samet: 9780123694461: amazon.com: books
空間資料結構,做圖形學/地理資料庫等有用。
clever algorithms: nature-inspired programming recipes: jason brownlee: 9781446785065: amazon.com: books
少有的啟發式演算法綜合教材,講到的啟發式演算法很多,模擬退火/蟻群優化/遺傳演算法/神經網路等等均有涉及,有ruby示例。
【一代宗師篇】
an introduction to the analysis of algorithms (2nd edition): robert sedgewick, philippe flajolet: 9780321905758: amazon.com: books
sedgewick又一力作,如書名,介紹分析演算法複雜度的各種數學技巧。
比peter brass的advanced data structures還要advanced得多的資料結構書,已經非常接近學術前沿了。可以當作wikipedia以外的資料結構參考書。。。
the art of computer programming, volumes 1-4a boxed set: 9780321751041: computer science books @ amazon.com
神作鎮樓。
入門級書目就不說了,參見各種演算法課本,其中大部分常見演算法打一遍你就入門了。
《程式設計珠璣》:這本書,總感覺是給不懂演算法的人講一些演算法的,經常玩演算法的會感覺好多他講得似乎很神奇的東西,其實很常見...不過這本基本上是面試必讀書目,因為許多人都愛出這上面的題。
《演算法導論》:經典書目,必讀,如果有能力,也可以拿它當入門書。
《計算機程式設計藝術》(taocp):這個,我沒讀多少,太數學了,自己功底還不夠。。得再修煉幾年。
《演算法藝術與資訊學競賽》(劉汝佳的黑書):這本書會給你提許多資訊學競賽中常用的演算法,演算法說得比較深入,但是很多時候書中的乙個顯然夠你證明乙個星期了。讀這本書主要是讓你知道原來還有這麼種演算法,具體這種演算法該怎麼去實現,你自己去找相關資料吧,因為這本書講得確實不詳細。
)普林斯頓的課,如果你只懂得什麼是棧、佇列,卻連乙個set類都實現不出時,聽這個課是最合適的了。免費的。
)馬上又要開課,可以去選。時間充裕的話,最好能認真完成作業,作業通過類似acm競賽評測系統的乙個自動評分系統提交。
coursera上面的課絕大多數都是精品,不止是理工類的課。很多人文社科類的課也非常推薦。
java web學習 一些方法學習
split split 方法根據匹配給定的正規表示式來拆分字串 注意 等轉義字元,必須得加 注意 多個分隔符,可以用 作為連字元 語法 public string split string regex,int limit 返回值 字串陣列 eg public class splittest syst...
演算法學習(一)
分配問題2 貪心演算法 採用貪心策略,保證每次操作都是區域性最優,從而使得之後結果得到的結果是全域性最優的 也適用於全域性結果是區域性結果的簡單之和 解決 區間問題 分配問題。leetcode 455 分發餅乾 假設你是一位很棒的家長,想要給你的孩子們一些小餅乾。但是,每個孩子最多只能給一塊餅乾。對...
演算法學習(一)
說明 給定一組陣列,進行排序,得到最大值和最小值。1 input data 2 1 3 5 7 9 11 295 297 299 300 298 296 12 10 8 6 4 234 answer 5 300 1 利用插入排序演算法進行排序 1 array 27871,16173,31511,13...