導航:首頁 > 源碼編譯 > 演算法第四版看不懂

演算法第四版看不懂

發布時間:2023-03-13 22:43:19

『壹』 演算法不扎實的程序員,每一個都很慌

初學者經常問這樣的問題,然而這些其實是錯誤的問題。

對於初學者而言,你最應該優先考慮的是,哪些東西構成了程序的基礎?

最經典的一句話: 程序 = 數據結構 + 演算法

如果說編程語言是程序的血肉,那麼演算法就是程序的靈魂。

人不能沒有血肉之軀,但是沒有靈魂的人依然只是一個死人。

不能單純依靠演算法衡量一個程序員的好壞,但是面試的時候考演算法絕對是簡單高效的篩選手段。近些年大廠的面試幾乎必考演算法也是這個原因。每一個演算法學的不扎實的程序員,在面試的時候都很慌。

下面這些書籍應該是演算法方面最常見的經典書籍。我有幸都讀過,有些讀完了,有些半途而廢,不過基本上也都算是熟悉。順序上由易到難,從薄到厚,每本書下面我會簡單的介紹一番,希望能對你的學習有所幫助。

首先是兩本演算法入門書籍,也可以當做演算法讀物:

《啊哈!演算法》

用他的自我介紹的來講:「這不過是一本有趣的演算法書而已,和別的演算法書比較,如果硬要說它有什麼特點的話,那就是你能看懂它。」

圖文並茂,而且畫風有趣,適合新手入門,但是代碼是C的,看著比較累,文字也略顯冗長。

圖是非常棒的,啟蒙用,非教科書

《演算法圖解》

和《啊哈》類似,他的介紹是:「像小說一樣有趣的演算法入門書。」

書裡面講的很好,python代碼也很容易讀懂,比之《啊哈!演算法》,書中的例子沒有那麼有趣,但是圖很清晰,文字和代碼不冗雜。

缺點同樣是非教科書,非常淺顯,三四個小時就看完了。有一種剛剛熱身的感覺。

接下來這幾本都是最常見的書了:

《數據結構與演算法分析C語言描述》

這本書的作者幾乎不浪費筆墨在一些簡單的地方。書很薄,但是覆蓋面很廣很深,作者實在是非常厲害。

不過反過來說,就是有些地方講的語焉不詳……

這本書還有java語言版本的,但是相比之下C的更好一些。

挺好的一本書。

還有一點是翻譯不是很給力,好多人都沒堅持看完。

《數據結構與演算法Python語言實現》

英文版評分非常高,中文版評分非常低……

據說是也翻譯的不好。另外就是本書自身錯誤也不少……幾版過後依然很多沒有改過來。

書中數學證明和介紹比較簡單。因為採用Python語言的原因,比較易讀。

淺顯易懂,內容上循序漸進,環環相扣。相比於上一本,我會更推薦一些。厚度也不算厚。

《數據結構與演算法 Python語言描述》

北大教授裘宗燕的書,這本書前面寫的挺好的,尤其是在面向對象還有ADT等思想的闡述,都很不錯。

但是讀到後來給我一種虎頭蛇尾的感覺,前面氣勢如虹緒論就寫了很長,最後三章感覺有點草草收尾的意思。就像編輯在催稿,而作者很忙的樣子……

另外就是這本書的編排順序我個人也不是特別喜歡。

接下來是兩本大部頭,都是非常厚的書。

他們最大的特點就是:出現率遠大於看完率

《演算法導論》

演算法書中的權威,MIT的6.046J就是按照這個來講的。

公認最好的演算法書,組織結構合理,內容詳盡。引導讀者從思維方式上對演算法進行領悟。

書中對演算法的數學結構進行了詳盡的闡述。有非常多的數學證明。

這本書我說不出什麼缺點,只能說有些內容是因為我還沒到大牛的境界,暫時還無法體會理解。

我個人的觀點是:不要糾結於詳細的偽代碼,不用糾結於連篇累牘的講解。體會其中演算法的精髓就好。

《演算法》第四版

如果說,《演算法導論》是學術上最好書,那這本應該是實際應用最好的書。

它對數學的要求比《演算法導論》低很多,摒棄了演算法的證明。

書中具體給出了每位程序員應知應會的50個演算法,深入淺出,大量圖解。非常棒。

java基礎的話你能擼出來Hello World基本上就可以開始看這本書了,這本書最大的不友好之處在於它的第一章非常長,沒看過的人又不知道哪裡可以跳過。

這本書後面的翻譯感覺不如前邊了,不知道是換人了還是DDL了……

翻開書就會看到很多的圖,配套作者在coursera上面的課程學的話事半功倍!

接下來的幾本我看的比較少,簡單介紹一下,希望大家自己去發現和了解,不要漏下這些好書:

《編程珠璣》

很薄一本啊,但是我放在那還沒看完……

這本書被稱為: 歷史 上最偉大的計算機科學著作之一

融深邃思想、實戰技術與趣味軼事於一爐的奇書。

內容不深,但是不是一個知識點一個知識點的給你講解演算法原理的。

這本書的核心思想是讓你了解如何正確選擇和高效地實現演算法。書中還有一些趣聞軼事,看著倒是很有意思~

有興趣的同學可以看看~

《演算法競賽入門經典》系列

演算法競賽入門經典書,ACM必備書籍吧算是。書中題目對於競賽來說比較簡單,但是對於一般我們平時工程來說偏難。語言用的是C/C++,請好好做例題好好做作業,讀書的時候好好思考和復習~

反正我是沒讀過,捂臉……

《劍指Offer》

這個書很有意思,對於在校生來說我個人覺得是必看的書。沒有任何工作經驗的同學在面試的時候真的會被問懵的。這本書可以讓你了解如何應付考官日常問題,在解答面試問題的時候,書中很多方法和思路會讓考官覺得你思考的很全面,給你加不少分。

我面試的時候也曾快速掃過一遍這本書,讓我在回答問題的時候條理更清晰。書中代碼是C的,emmm,於是代碼部分我就沒太看……

《用Python解決數據結構與演算法問題》

最後給大家推薦一本在線的 免費 的演算法書。

https://facert.gitbooks.io/python-data-structure-cn/

不是大部頭,也不是讀物,新手入門足夠用,書中介紹了大多數日常需要的演算法,並且講的比較淺顯~轉行的新手基本可以通過這本書來快速掌握常用基本演算法了~

反正免費,是否適合自己看兩頁也就get了~

如果需要PDF版,可以在「程序員必修課」公眾號後台回復:「Python演算法書」獲取。

『貳』 掌握了這些核心演算法,才能說自己是程序員

1、時間復雜度

2、空間復雜度

一般最先接觸的就是時間復雜度和空間復雜度的學習了,這兩個概念以及如何計算,是必須學的,也是必須最先學的,主要有最大復雜度、平均復雜度等,直接通過博客搜索學習即可。

不用說,鏈表、列表必須,不過重點是鏈表。

特別是優先隊列,再刷題的時候,還是經常用到的,隊列與棧,是最基本的數據結構,必學。可以通過博客來學習。相關文章:

樹狀數組其實我也沒學過,,,,

對於十大演算法的學習,假如你不大懂的話,那麼我還是挺推薦你去看書的,因為看了書,你可能不僅僅知道這個演算法怎麼寫,還能知道他是怎麼來的。推薦書籍是《演算法第四版》,這本書講的很詳細,而且配了很多圖演示,還是挺好懂的。

圖還是比較難的,不過我覺得圖涉及到的挺多演算法都是挺實用的,例如最短路徑的計算等

這方便的只是都是一些演算法相關的,我覺得如果可以,都學一下。像貪心演算法的思想,就必須學的了。建議通過刷題來學習,leetcode 直接專題刷。

我覺得動態規劃是最難的一個演算法思想了,記得當初第一次接觸動態規劃的時候,是看01背包問題的,看了好久都不大懂,懵懵懂懂,後面懂了基本思想,可是做題下不了手,但是看的懂答案。一氣之下,再leetcdoe專題連續刷了幾十道,才掌握了動態規劃的套路,也有了自己的一套模板。不過說實話,動態規劃,是考的真他媽多,學習演算法、刷題,一定要掌握。這里建議先了解動態規劃是什麼,之後 leetcode 專題刷,反正就一般上面這幾種題型。後面有時間,我也寫一下我學到的套路,有點類似於我之前寫的遞歸那樣,算是一種經驗。也就是我做題時的模板,不過感覺得寫七八個小時,,,,,有時間就寫。

對於上面設計到的演算法,我都提供了感覺還不錯的文章,建議大家收藏,然後可以利用零碎的時間進行閱讀,有些人可能會覺得上面的演算法太多,說實話,我覺得不多,特別是對於在校生的,上面涉及到的演算法可以不用很懂,但至少得了解。至於書籍的話,如果你連基本數據結構都還不懂的,建議看《數據結構與演算法》相關書籍,例如《大話數據結構》、《數據結構與演算法分析》。如果你有一定的基礎,例如知道鏈表,棧,隊列,那麼可以看《演算法第四版》,不過這本書是用 Java 實現的,不過我覺得你只要學過 C,那麼可以看的懂。

『叄』 C程序設計譚浩強版本的第四版和第三版有什麼區別

一、指代不同

1、C程序設計譚浩強版本的第四版:是2010年清華大學出版社出版的圖書,作者是譚浩強。

2、C程序設計譚浩強版本的第三版:被普遍認為是學習C語言的好教材,並被全國大多數高校選用。

二、特點不同

1、C程序設計譚浩強版本的第四版:內容先進,體系合理,概念清晰,講解詳盡,降低台階,分散難點,例題豐富,深入淺出,文字流暢,通俗易懂,是初學者學習C程序設計的理想教材,可作為高等學校各專業的正式教材。

2、C程序設計譚浩強版本的第三版:累計發行了700多萬冊,創同類書的全國最高記錄,是學習C語言的主流用書。


三、影響不同

1、C程序設計譚浩強版本的第四版:該書被大多數高校用作C語言學習的教材,更正了第三版中的不足。

2、C程序設計譚浩強版本的第三版:曾榮獲原電子工業部優秀教材一等獎、高校出版社優秀暢銷書特等獎、全國高等院校計算機基礎教育研究會優秀教材一等獎。

『肆』 演算法 第四版 這本書有配套的習題答案嗎

1. "我想學好基礎的數據結構和演算法! "
不多說,有這心就往下看。

2. "我應該准備些什麼? "
a. 這本橙書: 《演算法 第四版》
--亞馬遜中文版: amazon.cn 的頁面
--線上資源: Algorithms, 4th Edition by Robert Sedgewick and Kevin Wayne
b. 注冊Coursera, 依次加入這2門課: <演算法, 第一部分> <演算法, 第二部分>
Part 1:
Part 2:
如果沒開課, 就先標記, 這樣開課時會通過郵箱提示你.

3. "我應該做些什麼? "
先熟讀書內1.1和1.2, 最好把課後習題都做一做. 網站上開課後(即使已經開課幾周了, 沒關系), 跟住上課內容: 課本知識 + 視頻內容 + 課件重點+ Exercises (獨立完成且滿分) + Programming Assignments (獨立完成且盡量滿分) + Job Interview Questions. 從Part 1到Part 2, 跟住, 跟住, 跟住!

關於做書後練習題,參見:
演算法 第四版(algorithms 4th edition ) 這本書有配套的習題答案嗎看 - 孟祥豐的回答

4. "我學完了呢!"
再去跟隔壁斯坦福的演算法公開課, 他還給證書! 因為參考書籍基本上就是是《CLRS》, 所以也就是強迫自己去仔細研讀演算法導論.
---課程名稱:
<演算法設計與分析, 第一部分>
<演算法設計與分析, 第二部分>
---課程地址
Part 1:
Part 2: 2

『伍』 演算法中紅黑樹的刪除方法問題.

了無適俗韻真可與晤語

閱讀全文

與演算法第四版看不懂相關的資料

熱點內容
山東濟南生產伺服器雲主機 瀏覽:310
演算法員跳槽四年 瀏覽:730
秦九昭演算法v0怎麼求 瀏覽:384
斗魚java 瀏覽:896
程序員對老師的感謝 瀏覽:29
什麼app能查看銀行卡照片 瀏覽:24
win7pdf虛擬列印 瀏覽:332
程序員喜歡的女生條件 瀏覽:123
阿里雲伺服器ip搭建教程 瀏覽:85
解壓和拉伸這一動畫的原理是什麼 瀏覽:740
tbc戰士的命令怒吼 瀏覽:481
idea快捷鍵看源碼 瀏覽:976
手機碎屏解壓工具 瀏覽:245
jsonrpcphp使用 瀏覽:566
網上求職系統源碼 瀏覽:699
pdf數字不顯示 瀏覽:890
convertwordtopdf 瀏覽:253
程序編譯基本單位 瀏覽:23
python分析圖片角度 瀏覽:64
阿里雲伺服器能復制數據嗎 瀏覽:562