acm算法推薦入門書 沒參加過ACM如何訓(xùn)練數(shù)據(jù)結(jié)構(gòu)與算法能力?
沒參加過ACM如何訓(xùn)練數(shù)據(jù)結(jié)構(gòu)與算法能力?首先要學(xué)好數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)結(jié)構(gòu)是基礎(chǔ)。沒有數(shù)據(jù)結(jié)構(gòu),就不能在計算機(jī)中存儲數(shù)據(jù)及其關(guān)系,更不用說用算法來實(shí)現(xiàn)了。您可以查看數(shù)據(jù)結(jié)構(gòu)的算法4,然后學(xué)習(xí)算法。首先,你
沒參加過ACM如何訓(xùn)練數(shù)據(jù)結(jié)構(gòu)與算法能力?
首先要學(xué)好數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)結(jié)構(gòu)是基礎(chǔ)。沒有數(shù)據(jù)結(jié)構(gòu),就不能在計算機(jī)中存儲數(shù)據(jù)及其關(guān)系,更不用說用算法來實(shí)現(xiàn)了。您可以查看數(shù)據(jù)結(jié)構(gòu)的算法4,然后學(xué)習(xí)算法。首先,你可以閱讀算法介紹書,然后你可以看到有趣的算法,然后你可以看到算法介紹。最后,你可以做更多的問題和經(jīng)驗(yàn)。如果您沒有參加過ACM考試系統(tǒng)內(nèi)的刷題,也可以參加算法競賽。
搞安卓開發(fā)要不要學(xué)ACM算法?
像谷歌、百度這樣的搜索引擎公司,非常喜歡ACM優(yōu)勝者,因?yàn)樗麄冇幸粋€龐大的數(shù)據(jù)庫需要管理,他們需要不斷的更新、添加、刪除、修改等等。他們需要非常好的算法和數(shù)據(jù)結(jié)構(gòu)來有效地進(jìn)行這類工作,所以他們喜歡理論家,尤其是ACM好的理論家。如果是一般的軟件公司就不那么看重了。由于軟件規(guī)模小,其中一些不需要進(jìn)行過渡優(yōu)化。其中有些可能是軟件本身的特點(diǎn),不需要那些算法,比如游戲。如果涉及到底層的東西,比如操作系統(tǒng),這些ACM的東西就很難使用,因?yàn)橛布耆拗屏怂惴ǖ膽?yīng)用范圍,比如很多地方只能進(jìn)行位運(yùn)算或者逐字節(jié)運(yùn)算。簡而言之,算法專家只能在正確的地方發(fā)揮他們的價值,不像程序員可以在任何地方發(fā)揮作用。如果你能進(jìn)入谷歌這樣的公司,你可能會很受歡迎。否則,其他方很難有地方使用
ACM通用算法與實(shí)踐階段1:實(shí)踐經(jīng)典通用算法。給我十到二十次下面的算法,并簡化自己的代碼,1。最短路徑(Floyd、Dijstra、BellmanFord)2。最小生成樹(先寫一個prim,Kruskal使用和搜索,不容易寫)3。大數(shù)(高精度)加、減、乘、除4。二進(jìn)制搜索。(代碼可以在五行之內(nèi))5。叉積,判斷線段相交,然后寫出一個凸殼。6BFS,DFS,同時,精通哈希表(要熟悉,要靈活,代碼要簡單)。7從數(shù)學(xué)上講,有:兩條線內(nèi)的輪除、線段相交、多邊形面積公式。8呼叫系統(tǒng)的qsort,很多技能,慢掌握。9任意基之間的轉(zhuǎn)換
那么如果你抱著這種態(tài)度加入ACM就不要盡快學(xué)習(xí)了
!加入ACM,學(xué)習(xí)算法,參加比賽,當(dāng)然要爭取獎牌,這是對的!但如果你得不到獎牌,就不是零
!自己對算法和編程的理解,通過集中培訓(xùn),自己的能力肯定提高了很多,這些都是很有價值的!我們怎么能說利潤是零呢
!加入ACM的目的是獲得獎牌,但目的是學(xué)習(xí)算法,提高自己的能力!不要顛倒甚至混淆你的目標(biāo)
!沒有達(dá)到目標(biāo),但最終實(shí)現(xiàn)了自己的目標(biāo),就是成功!