程式設計師應該如何學習演算法?

時間 2021-05-06 01:42:36

1樓:哈哈哈

程式設計師學習演算法,演算法書上的理論,名詞,大致了解,具體的專案中具體用到的時候再重新翻書,深入的學習,有實際的例子,這樣更能理解。

2樓:李佳

我就補充乙個選項,不算什麼經驗之談。

有個很小的軟體叫做 Algorithms ,截圖如下, 每天想起來就開啟瀏覽下,比較符合普通程式設計師入門的需求,保持記憶。畢竟演算法這個東西佔比很高的程式設計師並不是每天都寫。

3樓:

先找本入門的書看演算法和資料結構,有一大堆。

如果要參加比賽,高階的話,可以看《演算法導論》、《演算法藝術與資訊學競賽》。

找書不難,難的是要長期忍受枯燥,堅持看。

4樓:人工智慧插班生

大家寫的建議和提供的材料都特別贊!

我的補充建議就是,不能為了學習演算法而學習,需要帶著問題去學習演算法。遇到問題,自己先思考解決方法,然後再去看經典演算法,這樣提公升的特別快。 如果一開始就猛灌經典演算法,自己思考的空間不足,後續創新能力可能會不足。

5樓:calelin

感覺國內稍微靠譜的學校演算法課都用OJ上機實戰的吧,好好做實驗。

上課的話除非是ACM教練之類的就去上,其它的就算了吧,據我所知大部分國內所謂的演算法課教師可能連PPT都念不利索,還不如

自己去看CLRS,sedgewick。

6樓:失落的藝術

《演算法等於數學嗎?》 ---- 1.演算法概念引入畢達哥拉斯驕傲地說:「任意給我乙個直角三角形,只需告訴我兩個直角邊的長度,不用拿尺 https://www.

7樓:Harry Pan

先學演算法,再學演算法思想。

可以從一些計算機競賽的題先入手,等到常見演算法都比較了解了再學習演算法的思想。

手動模擬演算法過程是個好方法。

8樓:楓子

我們學校是大一大二四學期自學演算法導論……每週會稍微提一下重點和細節。

上機練習還是挺重要的,它可以加深你對演算法的理解與運用。

事實上,我們學演算法主要為了兩個目的:熟練運用已知演算法與創造新演算法。

學習已知演算法的內涵是為我們創造新演算法奠基,得其意而忘其形。我們使用已知演算法時,事實上只需熟知它的功能與優劣性便已足夠。

9樓:帥康

其實要看你的數學基礎如何,如果數學基礎不錯,還是先學學資料結構再看演算法導論。如果數學基礎不好,也還是先學學資料結構再在網上找些課程然後看看演算法導論。

10樓:

強推算法導論,真是享受啊,我已經受夠了不妨設顯然易得素質三連了,講解也很到位,自己模擬模擬能掌握的更好,可以培養嚴謹的邏輯思維。

先要熟悉一種程式語言,對演算法有一點了解,再看會恍然大悟。

我初中的時候也是看不明白,就看看前面的分治排序之類的,證明也看不懂,高中學了集合後就很舒服了。

國內的很多教材太不嚴謹了,看了難受。

還有劉汝佳的書也不錯,可以學習一下他的具體實現。

書要多看,形成自己的理解。

11樓:

紅皮書是幾年前的了,現在美國亞馬遜有python實現演算法和資料機構的書,這本評分特別高,這是網頁版的,免費的。

12樓:斯達克學院StuQ

不說話,只做最靠譜的搬運工~~

演算法與資料結構--矽谷& BAT 程式設計師必備的內功心法(報名中) - 斯達克學院 - 實戰驅動的 IT 教育平台 - Powered By EduSoho

13樓:Xuan

1、先學好一種熱門的程式語言基礎,一定要精通;2、學好數學,由淺入深,高等數學、線性代數、離散數學、概率論、數理統計、計算方法等等;3、主要培養邏輯能力,

14樓:QZ63

推薦我校的三位老師的course website。

全而且基礎的:

難一點的,更加專門一點的:

Chandra Chekuri 的teaching 那一部分炒雞難的:

Courses Taught/TA by Sariel Har-Peled

15樓:

多練習多敲多看書多理解,

基本上演算法能夠過,並且程式語言從C開始,

再到C++,把相關演算法都過一遍,

再最後嘗試依照自己的理解再寫一寫演算法。

16樓:

cs.usfca.edu/~galles/visualization/about.html形象化可以幫助理解哈~

17樓:江湖貓

知道你所要了解領域的經典演算法,然後看大牛的相關文獻,第一篇文獻一定要多看幾遍,細化到每乙個公式推導和結論(既然說到公式推導,數學固然重要,泛函,工程數學,工程矩陣論等等時不時要去回顧下),在此基礎上程式設計實現。記住,先看文獻再看書,或者說書本只是學習演算法的輔助工具,不要花大量時間乙個字乙個字去細讀。等你對經典演算法的掌握積累到一定程度之後,可以嘗試創新延伸,比如小波變換影象去噪中對方差的估計,將全域性方差估計改為區域性分子帶方差估計,其處理效果是否改善?

這些只是我在我所學領域學習演算法的方法

以上待補。

18樓:qi yu

演算法要刷很多遍,第N次學乙個演算法和第N+1次,領悟的東西是不一樣的,建議每次用不同的教材去刷。第一遍學快排,難在思路的理解,第二遍學快排,難在如何把程式實現得優雅,第三遍學快排,難在演算法的具體效能分析

19樓:王浩

對於如何學習演算法這個問題,真的很難回答。因為不同的人在不同的背景下學習演算法的方法、路線肯定都是大相徑庭的。沒有任何乙個人敢說演算法就應該得這麼去學。

所以,我在這裡只能以我自身的學習經歷來對學習演算法給出幾點建議。

我認為學習演算法最重要的是通過學習一些現有的演算法的思想來培養自己解決問題的能力。 我不建議初學者一上來就看理論層次比較深的演算法書,而應該選一本即淺顯易懂又不失深刻的講解演算法思想的書,最好還能配一些如何設計演算法來解決實際問題的一些例子,比如我之前看過的《演算法設計手冊》。這樣既可以幫助你理解演算法思想,又不脫離實際。

除了看書,要想學好演算法當然還得做一些好題,可以在Leetcode或Topcoder上面找一些題做。

以上就是一些我的個人建議,演算法學習是乙個長期的過程,需要自己多思考,多練習才能悟出其中的玄機。

20樓:

補充一下 @白瓦力的答案,賽老爺子在Coursera上開了同名的演算法課,用的就是他的那本書做教材。演算法課之後還有一門演算法分析的課也很不錯。

這門課學完後,可以接著上Coursera上Stanford開的演算法課,這門課更接近《演算法導論》的感覺。

21樓:

推薦:http://www.

comp.nus.edu.

sg/~stevenha/visualization/index.html尤其是在《演算法導論》看得雲裡霧裡的時候,這個專案能幫助你直觀地理解各種演算法。

22樓:

我其實特別討厭看演算法導論,因為真的「又臭又長」

演算法就跟數學一樣,多做點題就有感覺了,不然光看到時候還是寫不出來

去HDOJ,POJ做做題吧

23樓:

為什麼沒人推薦這本書!

看你妹的算導啊!

學演算法是學習如何解決問題,而不是把現有的演算法背下來。

我們要做能解決問題的人,而不只是會背書的人。

24樓:

我自己正在看的是《演算法》這本,很厚的一本書,但是排版精美,有大量插圖(這點對學習資料結構非常重要),這點和 Head First 系列圖書有點像,讀起來較為輕鬆。

Google 工程師 @鞏朋 的部落格裡有一篇關於演算法學習的 我的演算法學習之路,詳細列出了在演算法的學習過程中看過的書籍。和輪子哥以前的 伴隨我成長的程式設計書 類似,都有很好的參考價值。

25樓:孫敬

選一本出色的教材.有條件就看英文的.

然後給自己乙個環境,例如LINUX+GCC+GDB,用純粹的語言去在解決問題的過程中學習演算法.

沒有目的性去學習,往往效率不高.

可以找一些ONLINE JUDGE的題目做做.例如

Welcome To PKU JudgeOnline

點頭網對著裡面的問題,先自己思考,嘗試程式設計解決,如果不能解決,就翻翻演算法書,想想為什麼.

如果還是不行,那就上網看看別人有沒有解決掉,怎麼做,看看他們用到什麼演算法,比對著,然後進一步自己去實現.

有時候對於演算法的問題的實現,你在實現之前也許會卡住,但是在程式設計過程中,隨著你的鍛鍊和熟練度的提高.會有那麼一天你覺得什麼都通了.

而且,你是在用的過程中學習.堅持走下去,一定事半功倍.

26樓:

初學演算法的話,推薦這本吧 http://book.douban.com/subject/1968704/

演算法導論過於詳細和深入,比較計較理論上的證明,很容易打擊信心,而這本上的內容由淺入深,思考題還比較有趣,內容也很充實,祝你成功。

程式設計師是否能夠不學演算法?

Hesion 可以不學。你如果能把一些業務技術 別人造好的輪子 能靈活運用,何必一定要成為造輪子的那個人呢。演算法這個東西,理解他是必然,但你不一定要是創造他的那個人,雖然在造輪子上來說,可能一定程度會限制發展。 琴姑娘 如果計算機算力足夠大。前提目前不成立。任何事情都有成本。你打算什麼事情都用超級...

程式設計師怎麼學習英語?

中國的技術氛圍一直很差,不管是因為民族性,還是因為牆,這就是現象。基於中國乃至華人的技術氛圍很差,大家都只顧著自己 公共性差 在這種環境下,產生的翻譯材料充滿著各種問題。機翻,逐字逐字翻譯。這導致了譯文經常不可讀。專業詞彙,直接跳過解釋,直接用。文獻不寫出來。這導致了中英之間對映混亂。沒什麼好解決方...

程式設計師程式設計,應該如何挑選電腦

海風海風 vi使用者表示必須是帶實體ESC按鍵的mac pro.13寸的,方便帶去開會。如果能加上防水功能就好了,可以一邊泡在浴缸裡面一邊程式設計 劉仙 你問這個問題不是不知道如何選電腦,而是想省點錢,想用不那麼多錢辦那麼多事。在你自己能力範圍內買最貴的就行了,現在macbook也可以分期了,直接選...