青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

life02

  C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
  197 隨筆 :: 3 文章 :: 37 評論 :: 0 Trackbacks

http://blog.163.com/pcteacher/blog/static/66585815200862183835111/


算法的力量(轉(zhuǎn)李開復(fù))---適合計算機(jī)專業(yè)新生

算法的力量
2006年5月

算法是計算機(jī)科學(xué)領(lǐng)域最重要的基石之一,但卻受到了國內(nèi)一些程序員的冷落許多學(xué)生看到一些公司在招聘時要求的編程語言五花八門,就產(chǎn)生了一種誤解,認(rèn)為學(xué)計算機(jī)就是學(xué)各種編程語言,或者認(rèn)為,學(xué)習(xí)最新的語言技術(shù)標(biāo)準(zhǔn)就是最好的鋪路方法其實(shí),大家被這些公司誤導(dǎo)了編程語言雖然該學(xué),但是學(xué)習(xí)計算機(jī)算法和理論更重要,因為計算機(jī)語言和開發(fā)平臺日新月異,但萬變不離其宗的是那些算法和理論,例如數(shù)據(jù)結(jié)構(gòu)算法編譯原理計算機(jī)體系結(jié)構(gòu)關(guān)系型數(shù)據(jù)庫原理等等在開復(fù)學(xué)生網(wǎng)上,有位同學(xué)生動地把這些基礎(chǔ)課程比擬為內(nèi)功,把新的語言技術(shù)標(biāo)準(zhǔn)比擬為外功整天趕時髦的人最后只懂得招式,沒有功力,是不可能成為高手的

算法與我

當(dāng)我在1980年轉(zhuǎn)入計算機(jī)科學(xué)系時,還沒有多少人的專業(yè)方向是計算機(jī)科學(xué)有許多其他系的人嘲笑我們說:知道為什么只有你們系要加一個科學(xué),而沒有物理科學(xué)系或化學(xué)科學(xué)系嗎?因為人家是真的科學(xué),不需要畫蛇添足,而你們自己心虛,生怕不科學(xué),才這樣欲蓋彌彰 其實(shí),這點(diǎn)他們徹底弄錯了真正學(xué)懂計算機(jī)的人(不只是編程匠)都對數(shù)學(xué)有相當(dāng)?shù)脑煸劊饶苡每茖W(xué)家的嚴(yán)謹(jǐn)思維來求證,也能用工程師的務(wù)實(shí)手段來解決問題而這種思維和手段的最佳演繹就是算法

記得我讀博時寫的Othello對弈軟件獲得了世界冠軍當(dāng)時,得第二名的人認(rèn)為我是靠僥幸才打贏他,不服氣地問我的程序平均每秒能搜索多少步棋,當(dāng)他發(fā)現(xiàn)我的軟件在搜索效率上比他快60多倍時,才徹底服輸為什么在同樣的機(jī)器上,我可以多做60倍的工作呢?這是因為我用了一個最新的算法,能夠把一個指數(shù)函數(shù)轉(zhuǎn)換成四個近似的表,只要用常數(shù)時間就可得到近似的答案在這個例子中,是否用對算法才是能否贏得世界冠軍的關(guān)鍵

還記得1988年貝爾實(shí)驗室副總裁親自來訪問我的學(xué)校,目的就是為了想了解為什么他們的語音識別系統(tǒng)比我開發(fā)的慢幾十倍,而且,在擴(kuò)大至大詞匯系統(tǒng)后,速度差異更有幾百倍之多他們雖然買了幾臺超級計算機(jī),勉強(qiáng)讓系統(tǒng)跑了起來,但這么貴的計算資源讓他們的產(chǎn)品部門很反感,因為昂貴的技術(shù)是沒有應(yīng)用前景的在與他們探討的過程中,我驚訝地發(fā)現(xiàn)一個O(n*m)的動態(tài)規(guī)劃(dynamic programming)居然被他們做成了O(n*n*m)更驚訝的是,他們還為此發(fā)表了不少文章,甚至為自己的算法起了一個很特別的名字,并將算法提名到一個科學(xué)會議里,希望能得到大獎當(dāng)時,貝爾實(shí)驗室的研究員當(dāng)然絕頂聰明,但他們?nèi)际菍W(xué)數(shù)學(xué)物理或電機(jī)出身,從未學(xué)過計算機(jī)科學(xué)或算法,才犯了這么基本的錯誤我想那些人以后再也不會嘲笑學(xué)計算機(jī)科學(xué)的人了吧!

網(wǎng)絡(luò)時代的算法

有人也許會說:今天計算機(jī)這么快,算法還重要嗎?其實(shí)永遠(yuǎn)不會有太快的計算機(jī),因為我們總會想出新的應(yīng)用雖然在摩爾定律的作用下,計算機(jī)的計算能力每年都在飛快增長,價格也在不斷下降可我們不要忘記,需要處理的信息量更是呈指數(shù)級的增長現(xiàn)在每人每天都會創(chuàng)造出大量數(shù)據(jù)(照片,視頻,語音,文本等等)日益先進(jìn)的記錄和存儲手段使我們每個人的信息量都在爆炸式的增長互聯(lián)網(wǎng)的信息流量和日志容量也在飛快增長在科學(xué)研究方面,隨著研究手段的進(jìn)步,數(shù)據(jù)量更是達(dá)到了前所未有的程度無論是三維圖形海量數(shù)據(jù)處理機(jī)器學(xué)習(xí)語音識別,都需要極大的計算量在網(wǎng)絡(luò)時代,越來越多的挑戰(zhàn)需要靠卓越的算法來解決

再舉另一個網(wǎng)絡(luò)時代的例子在互聯(lián)網(wǎng)和手機(jī)搜索上,如果要找附近的咖啡店,那么搜索引擎該怎么處理這個請求呢?

最簡單的辦法就是把整個城市的咖啡館都找出來,然后計算出它們的所在位置與你之間的距離,再進(jìn)行排序,然后返回最近的結(jié)果但該如何計算距離呢?圖論里有不少算法可以解決這個問題

這么做也許是最直觀的,但絕對不是最迅速的如果一個城市只有為數(shù)不多的咖啡館,那這么做應(yīng)該沒什么問題,反正計算量不大但如果一個城市里有很多咖啡館,又有很多用戶都需要類似的搜索,那么服務(wù)器所承受的壓力就大多了在這種情況下,我們該怎樣優(yōu)化算法呢?

首先,我們可以把整個城市的咖啡館做一次預(yù)處理比如,把一個城市分成若干個格子(grid),然后根據(jù)用戶所在的位置把他放到某一個格子里,只對格子里的咖啡館進(jìn)行距離排序

問題又來了,如果格子大小一樣,那么絕大多數(shù)結(jié)果都可能出現(xiàn)在市中心的一個格子里,而郊區(qū)的格子里只有極少的結(jié)果在這種情況下,我們應(yīng)該把市中心多分出幾個格子更進(jìn)一步,格子應(yīng)該是一個樹結(jié)構(gòu),最頂層是一個大格整個城市,然后逐層下降,格子越來越小,這樣有利于用戶進(jìn)行精確搜索如果在最底層的格子里搜索結(jié)果不多,用戶可以逐級上升,放大搜索范圍

上述算法對咖啡館的例子很實(shí)用,但是它具有通用性嗎?答案是否定的把咖啡館抽象一下,它是一個點(diǎn),如果要搜索一個面該怎么辦呢?比如,用戶想去一個水庫玩,而一個水庫有好幾個入口,那么哪一個離用戶最近呢?這個時候,上述樹結(jié)構(gòu)就要改成r-tree,因為樹中間的每一個節(jié)點(diǎn)都是一個范圍,一個有邊界的范圍(參考:http://www.cs.umd.edu/~hjs/rtrees/index.html

通過這個小例子,我們看到,應(yīng)用程序的要求千變?nèi)f化,很多時候需要把一個復(fù)雜的問題分解成若干簡單的小問題,然后再選用合適的算法和數(shù)據(jù)結(jié)構(gòu)

并行算法:Google的核心優(yōu)勢

上面的例子在Google里就要算是小case了!每天Google的網(wǎng)站要處理十億個以上的搜索,GMail要儲存幾千萬用戶的2G郵箱,Google Earth要讓數(shù)十萬用戶同時在整個地球上遨游,并將合適的圖片經(jīng)過互聯(lián)網(wǎng)提交給每個用戶如果沒有好的算法,這些應(yīng)用都無法成為現(xiàn)實(shí)

在這些的應(yīng)用中,哪怕是最基本的問題都會給傳統(tǒng)的計算帶來很大的挑戰(zhàn)例如,每天都有十億以上的用戶訪問Google的網(wǎng)站,使用Google的服務(wù),也產(chǎn)生很多很多的日志(Log)因為Log每分每秒都在飛速增加,我們必須有聰明的辦法來進(jìn)行處理我曾經(jīng)在面試中問過關(guān)于如何對log進(jìn)行一些分析處理的問題,有很多面試者的回答雖然在邏輯上正確,但在實(shí)際應(yīng)用中是幾乎不可行的按照他們的算法,即便用上幾萬臺機(jī)器,我們的處理速度都跟不上數(shù)據(jù)產(chǎn)生的速度

那么Google是如何解決這些問題的呢?

首先,在網(wǎng)絡(luò)時代,就算有最好的算法,也要能在并行計算的環(huán)境下執(zhí)行在Google的數(shù)據(jù)中心,我們使用的是超大的并行計算機(jī)但傳統(tǒng)的并行算法運(yùn)行時,效率會在增加機(jī)器數(shù)量后迅速降低,也就是說,十臺機(jī)器如果有五倍的效果,增加到一千臺時也許就只有幾十倍的效果這種事倍功半的代價是沒有哪家公司可以負(fù)擔(dān)得起的而且,在許多并行算法中,只要一個結(jié)點(diǎn)犯錯誤,所有計算都會前功盡棄

那么Google是如何開發(fā)出既有效率又能容錯的并行計算的呢?

Google最資深的計算機(jī)科學(xué)家Jeff Dean認(rèn)識到, Google 所需的絕大部分?jǐn)?shù)據(jù)處理都可以歸結(jié)為一個簡單的并行算法:Map and Reduce(http://labs.google.com/papers/mapreduce.html) 這個算法能夠在很多種計算中達(dá)到相當(dāng)高的效率,而且是可擴(kuò)展的(也就是說,一千臺機(jī)器就算不能達(dá)到一千倍的效果,至少也可以達(dá)到幾百倍的效果)Map and Reduce的另外一大特色是它可以利用大批廉價的機(jī)器組成功能強(qiáng)大的server farm最后,它的容錯性能異常出色,就算一個server farm里面的機(jī)器down掉一半,整個farm依然能夠運(yùn)行正是因為這個天才的認(rèn)識,才有了Map and Reduce算法借助該算法,Google幾乎能無限地增加計算量,與日新月異的互聯(lián)網(wǎng)應(yīng)用一同成長

算法并不局限于計算機(jī)和網(wǎng)絡(luò)

舉一個計算機(jī)領(lǐng)域外的例子:在高能物理研究方面,很多實(shí)驗每秒鐘都產(chǎn)生幾個TB的數(shù)據(jù)量但因為處理能力和存儲能力的不足,科學(xué)家不得不把絕大部分未經(jīng)處理的數(shù)據(jù)丟棄掉可大家要知道,新元素的信息很有可能就藏在我們來不及處理的數(shù)據(jù)里面同樣的,在其他任何領(lǐng)域里,算法都可以改變?nèi)祟惖纳罾缛祟惢虻难芯浚涂赡芤驗樗惴ǘl(fā)明新的醫(yī)療方式在國家安全領(lǐng)域,有效的算法可能避免下一個911的發(fā)生在氣象方面,算法可以更好地預(yù)測未來天災(zāi)的發(fā)生,以拯救生命

所以,如果你把計算機(jī)的發(fā)展放到應(yīng)用和數(shù)據(jù)飛速增長的大環(huán)境下,你一定會發(fā)現(xiàn),算法的重要性不是在日益減小,而是在日益加強(qiáng)

給程序員的七個建議

(1)練內(nèi)功不要只花功夫?qū)W習(xí)各種流行的編程語言和工具,以及某些公司招聘廣告上要求的科目要把數(shù)據(jù)結(jié)構(gòu)算法數(shù)據(jù)庫操作系統(tǒng)原理計算機(jī)體系結(jié)構(gòu)計算機(jī)網(wǎng)絡(luò),離散數(shù)學(xué)等基礎(chǔ)課程學(xué)好大家不妨試試高德納所著The Art of Computer Programming里的題目,如果你能夠解決其中的大部分題目,就說明你在算法方面有一定的功力了

(2)多實(shí)戰(zhàn)通過編程的實(shí)戰(zhàn)積累經(jīng)驗鞏固知識很多中國大學(xué)畢業(yè)生缺乏編程和調(diào)試經(jīng)驗;學(xué)習(xí)C語言,考試過關(guān)就算學(xué)會了;課題項目中,只要程序能夠編譯,運(yùn)行,并且輸入輸出滿足要求就算了事這些做法是不行的寫程序的時候,大家必須多想想如何把程序?qū)懙酶泳珶捀咝Ц哔|(zhì)量建議大家爭取在大學(xué)四年中積累編寫十萬行代碼的經(jīng)驗我們必須明白的是:好程序員是寫出來的,不是學(xué)出來的

(3)求實(shí)干不要輕視任何實(shí)際工作,比如一些看似簡單的編碼或測試要不懈追求對細(xì)節(jié)一絲不茍的實(shí)干作風(fēng)與敬業(yè)精神我發(fā)現(xiàn)不少程序員對于知識的掌握很膚淺,不求甚解,沒有好奇心,不會刨根問底比如,學(xué)會了C++,是否了解一個對象在編譯后,在匯編代碼中是如何被初始化的?這個對象的各個成員在內(nèi)存中是如何存放的?當(dāng)一個成員函數(shù)被調(diào)用時,編譯器在匯編代碼中加入了哪些額外的動作?虛函數(shù)的調(diào)用是如何實(shí)現(xiàn)的? 這些東西恐怕在編程語言或編譯原理中都沒有詳細(xì)提到,只有通過踏實(shí)的實(shí)干才能真正掌握

(4)重視數(shù)學(xué)學(xué)習(xí)數(shù)學(xué)是思維的體操,數(shù)學(xué)無處不在學(xué)計算機(jī)至少要學(xué)習(xí)離散數(shù)學(xué)概率論布爾代數(shù)集合論和數(shù)理邏輯這些知識并不難,但是對你未來的工作幫助會很大 尤其當(dāng)你對一些數(shù)學(xué)密集型的領(lǐng)域如視頻圖像處理等有興趣時,這些知識將成為你手中的利器

(5)培養(yǎng)團(tuán)隊精神,學(xué)會與人合作今天的軟件工程早已經(jīng)不是一個人可以單獨(dú)操作的,而必須靠團(tuán)隊合作才能成功不懂得合作的人是不能成大器的大家要多去尋找可以與人一起做項目的機(jī)會

(6)激勵創(chuàng)新意識,培養(yǎng)好奇心,不要死記硬背沒有掌握某種算法技術(shù)的根本原理,就不會有應(yīng)變和創(chuàng)新的能力想成為一位好程序員(其實(shí)從事任何一個行業(yè)都是如此),重要的是要養(yǎng)成鉆研,好奇,創(chuàng)新,動手,合作的優(yōu)秀習(xí)慣,不滿足于填鴨,不滿足于考試交差,不滿足于表象這不是學(xué)幾門課能夠一蹴而就的

(7)有策略地打工在不影響學(xué)業(yè)的前提下,尋找真正有意義的暑期工作或兼職去找一個重視技術(shù)的公司,在一個好的老板指導(dǎo)下完成真正會被用戶使用的程序不要急于去一個要你做頭而獨(dú)擋一面的地方,因為向別人學(xué)習(xí)才是你的目的找工作也是一樣,不要只看待遇和職銜,要挑一個你能夠?qū)W習(xí)的環(huán)境,一個愿意培養(yǎng)員工的企業(yè),一個重視你的專業(yè)的公司最后,還要挑一個好老板

希望大家都能把握機(jī)會,養(yǎng)成好的學(xué)習(xí)習(xí)慣,把算法學(xué)精學(xué)透;希望大家都能有一個美好的未來!

 該回復(fù)于2008-05-14 08:25:19被管理員刪除  The Art of Computer Programming Vol.1 (中文譯作計算機(jī)編程的藝術(shù)計算機(jī)程序設(shè)計技巧)--Basic Algorithms(基礎(chǔ)算法)

這部書被譽(yù)為20世紀(jì)最重要的20部著作之一,與Einstein的相對論并列,使計算機(jī)科學(xué)領(lǐng)域的權(quán)威著作全書共分5卷,目前已經(jīng)出版了3卷,這是它的第一卷基礎(chǔ)算法,包含了我們常用的算法及其相關(guān)數(shù)據(jù)結(jié)構(gòu)作者高德納(Donald E. Knuth)是美國Stanford大學(xué)計算機(jī)科學(xué)系的退休教授,在計算機(jī)科學(xué)領(lǐng)域享有崇高的威望 


本文來自CSDN博客,轉(zhuǎn)載請標(biāo)明出處:http://blog.csdn.net/zdl1016/archive/2009/09/27/4602750.aspx

posted on 2009-09-28 09:47 life02 閱讀(287) 評論(0)  編輯 收藏 引用 所屬分類: 算法
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲精品中文字幕在线观看| 亚洲欧美精品suv| 欧美人成在线| 欧美日韩国产综合在线| 欧美日韩亚洲激情| 国产精品久久久久久久久免费桃花| 欧美激情一区二区三区高清视频| 欧美伦理a级免费电影| 国产精品豆花视频| 国产日韩欧美高清| 亚洲福利视频免费观看| 亚洲色图自拍| 久久亚洲欧美| 日韩亚洲成人av在线| 亚洲一区二区欧美日韩| 久久频这里精品99香蕉| 欧美精品日韩综合在线| 国产日产精品一区二区三区四区的观看方式| 国产一区二区三区高清| 91久久久久久久久| 欧美在线免费视频| 亚洲国产日韩在线| 亚洲一级二级在线| 久久视频一区| 国产精品日韩精品| 日韩写真在线| 狂野欧美一区| 亚洲香蕉在线观看| 免费观看日韩av| 国产在线观看一区| 亚洲欧美激情四射在线日 | 欧美韩日精品| 国产亚洲网站| 亚洲女女做受ⅹxx高潮| 亚洲第一天堂无码专区| 亚洲欧美中文另类| 欧美日本中文字幕| 亚洲激情精品| 久久精品视频在线看| 99国产一区| 欧美成人精精品一区二区频| 国产色产综合产在线视频| 一道本一区二区| 欧美激情一区二区三区| 欧美一区二区三区视频免费播放| 欧美日本成人| 亚洲精品日韩在线观看| 裸体素人女欧美日韩| 亚洲摸下面视频| 欧美日韩网站| 99国产精品一区| 最新中文字幕亚洲| 欧美激情bt| 亚洲精品小视频在线观看| 你懂的一区二区| 久久青青草综合| 在线欧美日韩精品| 欧美wwwwww| 美女视频黄免费的久久| 亚洲丰满在线| 欧美国产日韩亚洲一区| 女生裸体视频一区二区三区| 在线成人小视频| 久久人人爽国产| 欧美在线资源| 激情亚洲成人| 蜜臀91精品一区二区三区| 久久久久久久网站| 伊人成年综合电影网| 久久一区精品| 老司机精品视频一区二区三区| 亚洲高清视频一区| 欧美成人日韩| 欧美国产日韩在线观看| 日韩一区二区免费看| 亚洲精品国产精品国自产观看| 欧美精品少妇一区二区三区| 亚洲自拍偷拍网址| 久久不射2019中文字幕| 亚洲国产一区二区三区青草影视| 亚洲福利在线视频| 国产精品二区在线观看| 久久精品二区| 久久久精品tv| 99亚洲伊人久久精品影院红桃| 在线色欧美三级视频| 美乳少妇欧美精品| 欧美日韩精品久久久| 欧美专区中文字幕| 久久久综合香蕉尹人综合网| 亚洲欧洲精品一区二区三区| 99re6热在线精品视频播放速度| 国产精品久久久久99| 久久久五月婷婷| 欧美精品一区二区三区在线播放| 午夜国产精品影院在线观看 | 欧美激情亚洲| 国产精品久久77777| 免费观看在线综合色| 欧美日韩在线视频一区二区| 久久精品五月| 欧美人成网站| 免费观看日韩| 国产区日韩欧美| 亚洲韩国一区二区三区| 国产免费一区二区三区香蕉精| 欧美高清视频在线| 国产日产亚洲精品系列| 亚洲国产一区二区三区高清 | 亚洲影院一区| 亚洲日本视频| 久久国产一区二区三区| 亚洲手机成人高清视频| 久久综合电影一区| 午夜视频一区在线观看| 欧美α欧美αv大片| 久久天天综合| 国产欧美日韩亚洲精品| 亚洲精品一区中文| 亚洲日本免费电影| 麻豆91精品91久久久的内涵| 欧美自拍丝袜亚洲| 欧美日韩在线免费视频| 亚洲国产一成人久久精品| 在线观看视频一区| 欧美在线不卡| 久久久久久9| 国产日韩亚洲欧美| 午夜精品影院| 性做久久久久久久久| 欧美三区在线视频| 亚洲美女福利视频网站| 亚洲免费观看高清在线观看| 久久美女艺术照精彩视频福利播放| 欧美一区二区视频观看视频| 国产精品美女久久福利网站| 夜夜嗨av一区二区三区四季av| 一区二区三区免费观看| 欧美日韩在线观看一区二区三区| 亚洲精品日本| 亚洲欧美色一区| 国产精品久久久久久久久婷婷 | 亚洲第一网站| 久久综合色播五月| 亚洲电影免费观看高清| 最近看过的日韩成人| 欧美成人按摩| 亚洲免费精品| 欧美一区二区在线观看| 国产一区日韩二区欧美三区| 久久久久一区二区| 亚洲黄色成人久久久| 一本大道久久a久久精品综合| 欧美视频中文一区二区三区在线观看| 亚洲精品一区二区网址| 亚洲永久在线| 国产一区二区三区丝袜| 久久偷窥视频| 亚洲精品在线二区| 欧美一级欧美一级在线播放| 国产精品人人做人人爽| 久久久精品五月天| 欧美福利在线观看| 日韩亚洲视频在线| 国产欧美日韩精品a在线观看| 久久视频精品在线| 日韩视频免费大全中文字幕| 欧美一区二区三区四区在线观看 | 欧美日韩精品福利| 午夜精品久久久久久久蜜桃app | 亚洲一二三区精品| 国产午夜精品一区二区三区视频 | 久久一区中文字幕| 亚洲精品老司机| 国产区二精品视| 欧美激情五月| 欧美亚洲在线视频| 亚洲全部视频| 国产午夜精品美女视频明星a级| 久久在线精品| 亚洲欧美精品一区| 欧美好吊妞视频| 先锋影音一区二区三区| 亚洲国产婷婷香蕉久久久久久| 国产精品免费福利| 欧美国产综合视频| 欧美在线国产精品| 日韩小视频在线观看专区| 美女主播一区| 欧美一级淫片播放口| 亚洲精品一区二区三区樱花 | 在线综合亚洲| 亚洲国产精品久久精品怡红院| 国产精品日韩| 欧美视频久久| 欧美精品黄色| 欧美精品免费视频| 欧美国产日韩精品| 老司机午夜精品视频| 久久国产日韩|