① 請教演算法導論這本書怎麼樣適合什麼程度的學習者
適合了解一門或以上編程語言的人,即使你沒學過數據結構也沒關系,因為它把數據結構中的演算法從基礎到非常深入全部都包括了,個人建議你先把C語言用熟悉了,然後再去看,演算法導論,如果有決心看完,數據結構都不用看,因為你看完演算法導論,就等於學會了非常高級的數據結構,但是看完很難。。。
至於C++,可以順帶著學一下,然後用C++自己把演算法實現一下,等於練兩倍。
也不一定非得學C++,可以學習Java或者C#,看你的發展方向
② 為什麼有人說弄懂了《演算法導論》的90%,就超越了90%的程序員
其實計算機程序底層核心就是各種數學演算法,剩下就是怎麼用代碼去實現數學,世界上有名的計算機程序大牛幾乎都跟數學權威方面的專家有關。
從另一個角度回答,因為就算看懂百分百,也很難超越另外的百分之十
很多程序員沒讀過演算法導論
其實不管是對於在校生來說還是已經工作的程序員,一般很少都會接觸演算法。
學生的話也只有計算機相關專業的開設了數據結構和演算法相關課程的才需要用到,但如果只是對付期末考試的話也沒啥難度。
但是如果在大學期間接觸到演算法競賽就不一樣了,需要花費比較多的精力。
的確在工資上任何公司都是10%的演算法大佬拿的工資比其他90%的業務開發程序員或者其他的程序員都要高,不過就憑只懂《演算法導論》這本書的話還是不太行的,演算法離不開業務的。就算超越也是超越那10%的演算法工程師里的90%,如果能達到這個境界別說BAT了,微軟谷歌都是可以考慮的。
說這個話在我看來他可能是想賣課,賣完再慢慢告訴你,「學到90%也沒有那麼容易」,或者「在刷我這套題這件事上超越90%的程序員 並不等於收入上超越90%的程序員」。
你多去拼多多參加幾個活動,在文字 游戲 和預期管理上你應該就懂了;要是還不懂,大概你也不是那麼適合做這一行以及演算法導論。
公式:弄懂+一本名著+百分比+超越+百分比+你的群體。
例句:
弄懂sicp的67.9%,你就超越了95%的程序員。
弄懂本草綱目的72%,你就超越了93.7%的中醫。
弄懂冰箱說明書的83%,你就超越了99.9%的冰箱使用者(這也許是最真實的,雖然冰箱說明書不是名著……)
至於為什麼這么說……個人覺得就是對xx東西的一種崇拜,很大程度上是人雲亦雲。
演算法導論是本不會動的書,不同人讀效果不一樣的。不要神化某一本書,參差多態乃幸福本源。不看演算法導論你也可以會演算法,你也可以會數據結構,你也可以進大廠。沒有演算法導論的時候也依然有研究演算法的科學家。你能通過他學會知識很好,但你覺得它晦澀,搞不懂,沒有c的代碼讓你學的不舒服,那就不看他。
人生中見書,書中見人生。讀書有時候不一定是為了學東西,可能更多的是一種享受。就像你沒學看過csapp之前,通過各種課程,學了零零碎碎的知識。忽然有一天你看了csapp,你覺得好過癮啊,好爽啊。你覺得你學習的第一天就看csapp能有這種效果嗎?
好書不會變少只會變多,更何況幫到你的也未必需要是好書。也許一本書只是很普通的書,不嚴謹,還都是大白話,但未必就幫不到你。
學東西莫要搞崇拜。很多程序員學習的時候都不是通過演算法導論這本書學的,可他們依然很傑出。
程序員來回答一下:
1.《演算法導論》這本書理論來說90%程序員也沒弄懂,所以你弄懂了就超過了90%。
2.其實程序員是一個大的行業,IT也是一個大的行業,門外人看著都是一群寫程序的,修電腦的,更有人認為是裝電腦系統的,你被別人交過去裝過系統嗎?
3.程序員架構上來說,嵌入式 協議棧 應用 網路 伺服器 工具 系統 等等等!
4.有一些行業是不需要看演算法導論的,更有一些轉行過來的,應該更不太了解演算法導論。
這本書在美國的大學被稱為clrs, 是標準的本科高年級和研究生入門的演算法課課本。優點是比較全面的講解了常用和基本的演算法,習題質量不錯。問題是動態規劃講的不好,篇幅原因一些近代的演算法沒有概括。總的來說是本不錯的演算法入門教科書。
演算法是計算機科學的核心。計算理論偏數學,編譯原理和操作系統偏硬體,真正計算機科學的核心就是演算法。無論做研究還是搞工程,都是必不可少的。
程序是給人看的,不是給機器。寫給機器的程序誰都可以寫出來,但不是每個程序員都能寫出別人看懂的東西
程序是什麼,程序就是數據結構和演算法,弄懂了超90%的程序員不是很正常嘛
看懂2%就超過了80%,沒必要看那麼多
因為這本書翻譯的很枯燥、也很理解,這種情況下你還理解了90%,說明你有耐心,有恆心,耐得住寂寞。我相信不只是做程序員,做其它行業也會很優秀。
③ 演算法導論和演算法概論 這兩個書是一樣么 不是的話 那個更好
不一樣,演算法導論系統的介紹了每種計算機科學裡面涉及到的常用演算法,裡面每種演算法都給出了偽代碼和相關的原理解釋,證明等,他更像是類似字典的一本工具書,在我看來是如此
演算法概論這個書不太了解,但是裡面好像從最簡單的古老演算法作為例子開始,最後還介紹了很高端的量子演算法。總之我們一般都是用演算法導論,這個和我們自己想要學習的東西有關系,沒有所謂更好,看你自己的需要而已。
④ 初學者學習演算法的話 是演算法概論這本書好還是演算法導論這本書好 有什麼區別嗎 同學推薦我看演算法導論我不
演算法概論沒聽過。演算法導論也不太適合初學把,至少找一本有對應具體語言的實現的版本和演算法導論合在一起看,演算法僅僅粗略理解而不實踐是沒有用的
⑤ 求演算法第四版mobi/azw格式的資源,kindle讀的,最好是中文版的,演算法導論
你要是有PDF,TXT,world版的我可以給你弄成mobi。
你找這么專業的mobi原版很難找的
⑥ 哪本數據結構與演算法最好
國外很多經典的
(因為以前搞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/
⑦ 機器學習的演算法和普通《演算法導論》里的演算法有什麼本質上的異同
作者:董可人
鏈接:http://www.hu.com/question/24976006/answer/29682806
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請註明出處。
演算法導論里的演算法本質上是對有精確解的問題,如何更有效率地求得這個解。這個效率可以是計算時間更短,也可以是計算過程所需要的空間更少。
一個簡單的例子是,給定一個亂序數組,如何快速的將其按從小到大的順序重新排列,或者找到其中的中位數。這些問題都有確定且唯一的答案,一般都會有一個笨方法(窮舉或遍歷),只要一步一步來就可以解,所謂演算法只是如何精簡步驟,更快更省事地找到這個解。這些演算法處理的數據也都是結構簡潔且干凈的類型,比如數組,二叉樹,圖之類的數據結構。數據規模對於這些演算法而言,影響的是計算所需的時間和空間,不會因為規模改變而影響演算法本身的邏輯以及計算的結果。
機器學習要解決的問題一般沒有精確解,也不能用窮舉或遍歷這種步驟明確的方法找到解,而且需要強調的是「學習」這個屬性,即希望演算法本身能夠根據給定的數據或計算環境的改變而動態的發現新的規律,甚至改變演算法程序的邏輯和行為。
舉例來說,可以是把一千份文檔歸類到不同的幾個類別里。最簡單的可以是給定幾個類別,比如新聞,小說,詩歌等,演算法來根據文章內容自動劃分到對應的類別里。這里可以看出這個問題即使讓人做,也有很多模糊不能確定的地方,比如一篇法制晚報上的犯罪紀實是應該劃到新聞,還是小說呢?或者說一篇長詩比如荷馬史詩是應該歸在小說還是詩歌呢?機器學習演算法想要解決的,就是根據從文章內容里找到的規律,來自動的給出一個劃分。而不同演算法可以給出不同的解,這些解都可以是「正確」的,所以一般還需要人為設計一個評判標准來決定孰優孰劣。
也可以不事先給定類別,而是讓演算法自己去發現文章中的規律,把相似度高的文章劃分到一起。這樣不同的演算法可能給出不同數量的類別劃分,可能是三個,四個,或者五個,也都可以是「正確」的劃分。甚至什麼是「相似度」,不同演算法也可以給出不同解釋,可以是名詞動詞形容詞的詞頻及比例,也可以是句子的語法結構等。
更進一步的,你可能還希望這個演算法能夠用來判斷一份新的文檔的類別。而輸入的新文檔越多,也會進一步擴大初始數據集的規模,規模變大以後,原來數據中不明顯的規律可能就變明顯了。比如說原來一千份文檔中只有一篇議論文,可能大多演算法都無法把它單獨劃出一個類別,但當你持續輸入一百份議論文後,數據中議論文的比例就變成了101/1100,差不多10%,這時候演算法就應該劃分出單獨的議論文類別。在這個意義上,數據本身也對演算法有很大的影響,這也是和演算法導論中的演算法的一個本質區別。
技術上說,演算法導論中的演算法關注點在數據結構和計算復雜度,屬於離散數學的一個分支,不涉及微積分等高等數學概念。機器學習的演算法本身是基於概率,統計和優化(optimization)等理論和技術,從這個角度上說給人感覺更「數學」一點。
在具體的實現細節上,機器學習的演算法會大量應用演算法導論中的技術來改進計算效率。但需要強調這僅僅是對底層實現來說,在演算法本身的邏輯上,二者沒有太多聯系。換句話說,演算法導論中的技術可以幫助你寫出更快的程序來運行機器學習演算法,但是這對機器學習要解決的問題本身是沒有什麼幫助的。熟練使用二叉樹散列表,准確估算一個圖演算法的復雜度,都沒有任何可能幫助你猜到在女朋友過生日時送什麼禮物最好(使用了機器學習演算法的淘寶君卻很可能知道!)。因此不要把它們看成是搭積木拼構件的關系。
最後,如果以上解釋仍然讓你費解,那麼還有一個更通俗的解釋:演算法導論是教你如何數數,而機器學習基本上相當於星座算命。一個很機械,一個靠忽悠,差不多就是這樣吧。
具體分析見鏈接:http://www.hu.com/question/24976006
⑧ 《演算法導論》《數據結構與演算法分析》《數據結構,演算法與應用》 這幾本書有什麼區別
數據結構先學,然後看演算法導論再看演算法,數據結構是演算法的基礎,演算法導論不看也是可以的。我是大三的計算機專業的學生~呵呵,快畢業了 - - 郁悶!
⑨ 演算法導論的內容簡介
《演算法導論》自第一版出版以來,已經成為世界范圍內廣泛使用的大學教材和專業人員的標准參考手冊。本書全面論述了演算法的內容,從一定深度上涵蓋了演算法的諸多方面,同時其講授和分析方法又兼顧了各個層次讀者的接受能力。各章內容自成體系,可作為獨立單元學習。所有演算法都用英文和偽碼描述,使具備初步編程經驗的人也可讀懂。全書講解通俗易懂,且不失深度和數學上的嚴謹性。第二版增加了新的章節,如演算法作用、概率分析與隨機演算法、線性編程等,幾乎對第一版的各個部分都作了大量修訂。
本書深入淺出,全面地介紹了計算機演算法。對每一個演算法的分析既易於理解又十分有趣,並保持了數學嚴謹性。本書的設計目標全面,適用於多種用途。涵蓋的內容有:演算法在計算中的作用,概率分析和隨機演算法的介紹。本書專門討論了線性規劃,介紹了動態規劃的兩個應用,隨機化和線性規劃技術的近似演算法等,還有有關遞歸求解、快速排序中用到的劃分方法與期望線性時間順序統計演算法,以及對貪心演算法元素的討論。本書還介紹了對強連通子圖演算法正確性的證明,對哈密頓迴路和子集求和問題的NP完全性的證明等內容。全書提供了900多個練習題和思考題以及敘述較為詳細的實例研究。
本書內容豐富,對本科生的數據結構課程和研究生的演算法課程都是很實用的教材。本書在讀者的職業生涯中,也是一本案頭的數學參考書或工程實踐手冊。
⑩ 《演算法導論》與《演算法設計》選擇哪本更好
總的來說,兩本各有所長,建議可以都涉及涉及一下,然後根據自己重點學習哪個。另外我覺得想自學演算法,我認為吧,就是看學寫無數演算法,然後就可以信手拈來的自己去寫。同時如果自學演算法,我的建議是最好是多思考多動手(可以結合現實當中的各種程序演算法,想一下他們怎麼用演算法寫出來的,就比如飯堂里刷卡算錢等等。。如何用演算法做到的。。),這樣自學就很有意義了。