從計算機算法到做事效率的提升

從上周開始,《吳軍的谷歌方法論》中的文章之剧,和計算機知識相關(guān)性更強了螃概。在閱讀老師精彩文章之余,也需多做一些自己的反思和總結(jié)唧龄,希望能跟上老師的腳步,對計算機思維有較多的認識奸远,讓自己更好地適應(yīng)智能時代既棺。

一、計算機算法的比較

對于計算機的算法懒叛,吳軍老師是這樣定義的:

科學(xué)家們在翻譯現(xiàn)實世界的需求和計算機虛擬過程時丸冕,就提煉出一些高效的、不斷被驗證過的標準流程薛窥,這些流程就是我們所說的計算機算法胖烛。

計算機算法構(gòu)成了計算機科學(xué)的基礎(chǔ)。在算法上一個很小的差別诅迷,會導(dǎo)致計算機執(zhí)行效率上千萬倍的差距佩番。受此啟發(fā),吳軍老師常說竟贯,人和人水平的差別是數(shù)量級的答捕。因為不同的做事方法,產(chǎn)生的效果之間會存在非常巨大的差異屑那。

這里老師提出了A拱镐、B兩種算法的比較:

場景一:使用1萬個數(shù)據(jù)進行測試,算法A的運行時間是1毫秒持际,算法B的運行時間是10毫秒沃琅。

場景二:使用100萬個數(shù)據(jù)測試,算法A運行10000毫秒蜘欲,算法B運行6000毫秒益眉。

看似A在數(shù)據(jù)少時有優(yōu)勢,B在數(shù)據(jù)大時有優(yōu)勢,無法比較郭脂,但算法分析之父高德納確定了算法比較的標準年碘。

在比較算法快慢時,需要假定數(shù)據(jù)量會達到近乎無窮大展鸡。然后屿衅,將影響算法快慢的因素分為兩類:一類不隨數(shù)據(jù)變化,另一類是隨著數(shù)據(jù)變化的莹弊。

在比較兩種算法的時候涤久,只關(guān)注第二類影響因素,也就是隨著數(shù)據(jù)變化的影響因素忍弛。如果兩種算法在量級上是相當响迂,那么就認為兩種算法是一樣好的,不必計較三五倍的差別细疚。

高德納之所以能提出這樣的理論蔗彤,在于他能將問題理想化,提出次要因素惠昔,考慮最重要的因素幕与。這樣的思想對于我們很有啟發(fā)意義。

記得在物理化學(xué)中镇防,科學(xué)家為了簡化問題,會將實際氣體簡化為理想氣體潮饱。就是假定氣體分子本身的體積来氧,氣體分子之間的受力和氣體分子碰撞的能量損失,都可以忽略不計香拉±惭铮基于理想氣體的模型來研究問題,可以極大地簡化計算凫碌,只考慮壓強和溫度對于空氣系統(tǒng)的影響扑毡。這樣簡化的過程,是一個忽略次要因素盛险,側(cè)重研究重要因素的過程瞄摊。當然,在一些特定的空氣系統(tǒng)中苦掘,科學(xué)家會對理想氣體方程進行修正换帜,以便更好地模擬實際氣體,以便降低誤差鹤啡,得到更準確的結(jié)果惯驼。

這樣的思維對于我的啟發(fā)是,面對生活中的問題,可以抽象出影響的因素祟牲,找到最主要的矛盾隙畜,用最主要的精力把主要矛盾解決了,再去逐個解決次要的矛盾说贝。

二议惰、從排序算法到提高效率的本質(zhì)

在生活中,我們會面對很多具體的排序問題狂丝,比如一個年級的學(xué)生按照成績排序换淆,電商按照商品的交易量排序等。將這些現(xiàn)實世界的問題几颜,變成計算機可運行的程序倍试,中間的橋梁就是排序算法。

文中老師介紹了最基本的插入法和冒泡法蛋哭,兩種算法出于同一個量級县习,是一樣好的。那么更好的算法是怎樣的呢谆趾?

這就要提高計算機的效率躁愿,而提高計算機效率的方法,就是讓計算機少做事情沪蓬。這里老師介紹了一種叫作歸并排序的方法彤钟。當處理的數(shù)據(jù)為1萬時,冒泡法和插入法的復(fù)雜度是1億跷叉,而歸并算法的復(fù)雜度是13萬逸雹,可見歸并算法比前兩者要好處很多。這也就是為什么云挟,水平較差的程序員會無端浪費成千上萬倍的計算資源了梆砸。

歸并算法的效率之所以這么高,是因為它減去了很多不必要的比較园欣。這里老師也再次說明了自己的做事方法帖世,就是少做事情,把每一件經(jīng)手的事情都做到很好沸枯。

效率=產(chǎn)出/所做的事情日矫。人的產(chǎn)出是很難提高的,但是所做的事情是可以減少的辉饱。

三搬男、快速排序:要想提高效率就要少做事情

在這里老師介紹了目前最好的排序算法:快速排序法。該方法的基本思路如下:

首先彭沼,對于一大堆無序的數(shù)字缔逛,從中隨機挑選一個,比如是53,這個被隨機選上的數(shù)字被稱為樞值褐奴。這個樞值可以將所有數(shù)值分為兩組按脚,一組大于53,一組小于53敦冬。

然后辅搬,從上面得到的兩堆數(shù)字,分別采用第一步的方法各自再找一個樞值脖旱。這樣一層層找下去堪遂,很快就把所有的數(shù)字排好了。

快速排序在歸并排序的基礎(chǔ)上萌庆,進一步少做了事情溶褪。

那么是否有比快速排序更優(yōu)的排序方法呢?答案是否定的践险,關(guān)于這一點已經(jīng)在數(shù)學(xué)上證明過了猿妈。這就是我們做事情的邊界。如果一個人不去認證讀數(shù)學(xué)證明巍虫,而是一心要去研究更好的排序算法彭则,就是浪費自己的時間。我們一定要在邊界內(nèi)做事占遥。

關(guān)于快速排序俯抖,古小千同學(xué)的留言非常精彩。我們經(jīng)常在做計劃排優(yōu)先順序上花了大量的時間瓦胎,小千同學(xué)給出了一個不錯的方法:

首先找到一個顯而易見的待辦事項(樞值)蚌成,接著綜合考慮急迫性和重要性,分成兩撥凛捏;再將兩撥事情找到樞紐,就把所有的工作芹缔,依照平分分成四份了坯癣。

再接下來,我會快速檢查后兩部分的事情最欠,將不必要的事情減法刪除示罗、將重要但不急迫的事先預(yù)定計劃。然后專注完成前兩部分的事芝硬,透過排序和減法蚜点,一天要完成的事就只剩約一半。樞紐這個節(jié)點拌阴,幫我們梳理參考點绍绘,而事情一件件單看,很難取舍;但有了參考陪拘,一比較就能掂量差別厂镇,勇敢做減法了!

對于快速排序的實際應(yīng)用左刽,我是這樣理解的捺信。我們要做的事情大體可以分為工作方面和生活方面。由于我們一段時間只能做一件事情欠痴,那就要從工作中找到最重要的事情迄靠,生活中找到最重要的事情,比較兩件事情的優(yōu)先級喇辽。

就工作方面而言掌挚,我們又有很多不同的選項,可以深入當前的工作茵臭,可以準備換工作疫诽,也可以思考創(chuàng)業(yè)。因為我現(xiàn)在的公司就是老師說的底層員工和總經(jīng)理差不多的單位旦委,所以最近在考慮換工作(其實考慮很久了…)奇徒。過年時候有朋友聯(lián)系我,希望我和他一起做B2B平臺方面的創(chuàng)業(yè)項目缨硝。如果平臺發(fā)展順利摩钙,那么后期的回報是非常大的。但我綜合考慮了一下查辩,目前自己的能力還不足以勝任胖笛。自己本身的基線還不夠把這件事情做好。那么我現(xiàn)在的優(yōu)先順序就是:換工作>本職工作>創(chuàng)業(yè)宜岛。

然后在每個小的方面长踊,再進行排序,優(yōu)選出最重要的事情萍倡。老師說想要提高效率就要少做事身弊,對于最終要選擇哪些事情來做,快速排序法是一個不錯的方法列敲,幫助我們確定優(yōu)先順序阱佛。

四、計算機科學(xué)和計算機工程的差別

這里老師分析了計算機科學(xué)和計算機工程的三個差別:

1.方向和道路之分別

前者指明方向戴而,后者鋪就道路凑术。

2.關(guān)注的事情不同

前者關(guān)注的是算法在量級上跨越式的提升,不會過分考慮處理器時間所意、計算機內(nèi)存等限制淮逊;而后者則要考慮很多具體的問題催首,即便能節(jié)省20%的時間也是有意義的。

3.和錢的距離不同

前者離錢較遠壮莹,更多純粹研究翅帜,后者離錢較近,更加務(wù)實命满。

通過分析兩者的區(qū)別和聯(lián)系涝滴,我認識到,純粹的研究有助于技術(shù)產(chǎn)生量級上的提升胶台,如果喜歡做研究歼疮,就不要羨慕做工程的人離錢更近,專心做出一些讓世界有所不同的東西诈唬。如果喜歡做工程韩脏,首先要仔細查閱資料,找到現(xiàn)有研究成果中最先進的方法铸磅,在此基礎(chǔ)上做微調(diào)赡矢。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市阅仔,隨后出現(xiàn)的幾起案子吹散,更是在濱河造成了極大的恐慌,老刑警劉巖八酒,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件空民,死亡現(xiàn)場離奇詭異,居然都是意外死亡羞迷,警方通過查閱死者的電腦和手機界轩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來衔瓮,“玉大人浊猾,你說我怎么就攤上這事∪劝埃” “怎么了与殃?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長碍现。 經(jīng)常有香客問我,道長米奸,這世上最難降的妖魔是什么昼接? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮悴晰,結(jié)果婚禮上慢睡,老公的妹妹穿的比我還像新娘逐工。我一直安慰自己,他們只是感情好漂辐,可當我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布泪喊。 她就那樣靜靜地躺著,像睡著了一般髓涯。 火紅的嫁衣襯著肌膚如雪袒啼。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天纬纪,我揣著相機與錄音蚓再,去河邊找鬼。 笑死包各,一個胖子當著我的面吹牛摘仅,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播问畅,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼娃属,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了护姆?” 一聲冷哼從身側(cè)響起矾端,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎签则,沒想到半個月后须床,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡渐裂,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年豺旬,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片柒凉。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡族阅,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出膝捞,到底是詐尸還是另有隱情坦刀,我是刑警寧澤,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布蔬咬,位于F島的核電站鲤遥,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏林艘。R本人自食惡果不足惜盖奈,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望狐援。 院中可真熱鬧钢坦,春花似錦究孕、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至禾酱,卻和暖如春微酬,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背宇植。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工得封, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人指郁。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓忙上,卻偏偏與公主長得像,于是被迫代替她去往敵國和親闲坎。 傳聞我的和親對象是個殘疾皇子疫粥,可洞房花燭夜當晚...
    茶點故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 一. 寫在前面 要學(xué)習(xí)算法,“排序”是一個回避不了的重要話題腰懂,在分析完并查集算法和常用數(shù)據(jù)結(jié)構(gòu)之后梗逮,今天我們終于可...
    Leesper閱讀 2,520評論 0 40
  • 不動聲色,好高大上的一個詞!有一種奢華的低調(diào)绣溜。 在這個把“馬爸爸”和“喬不死”供上神壇慷彤,勵志與...
    等風(fēng)來別急閱讀 1,520評論 1 2
  • 基礎(chǔ)入門 React Native For Android環(huán)境配置以及第一個實例 React Native開發(fā)ID...
    編程之上閱讀 1,385評論 0 42
  • 1 雪,漫天的雪飛揚了下來怖喻,混著一絲絲的鮮血落在沈燭的身上底哗。沈燭手里握著一節(jié)和她衣服一樣艷紅的鞭子,鞭子上還滴著鮮...
    沈琳瑯R閱讀 478評論 1 1
  • 一锚沸、因勞動者原因致勞動合同無效的賠償責(zé)任 法律依據(jù): 《勞動合同法》:第八十六條:勞動合同依照本法第二十六條規(guī)定被...
    小好閱讀 616評論 0 1