從計算機的演算法,談談提高效率的本質

2021-09-29 22:16:03 字數 430 閱讀 3816

吳軍《谷歌方**》學習筆記。

本文以計算機中的排序演算法為例,說明了提高效率的本質。

在排序演算法中,常見的氣泡排序,插入排序,它們的時間複雜度都是o(n平方)。

接下來思考如何提高排序演算法的效率呢?節省20%的計算量是沒有意義的事情,就算省個三五倍也沒有意義,要省就乾脆多省一點,省它個成千上萬倍甚至更多。於是全世界的演算法專家經過十多年的思考,終於發現從經驗出發的排序演算法速度慢的原因,就是做了無數的無用功。要提高效率,就需要讓計算機少做事情。

要想提高效率,就要減少資料之間的互相比較。

後來發明的歸併排序,時間複雜度是o(logn),效率提高了這麼多,就是因為它少做了很多並不需要的比較。

效率=產出/所作的事情。人的產出是很難提高的,但是所做的事情是可以減少的。

到了智慧型時代,本事差一點,效果可能差幾百萬倍,幾億倍,專業和不專業就差的更遠了。

提高效率的幾種方法

現在,隨著技術的進步,我們對資訊的獲取越來越容易。一方面,我們獲得了更多的資訊 另一方面,我們也被眾多的資訊所包圍,導致一種所謂的資訊過載。記得王建碩在他的一篇文章談過資訊過載的問題。他說,其實根本就不存在資訊過載,只不過在以前受到技術的限制,人們無法輕易的於自己關係不大的資訊 而如今網際網路使人們...

sql的簡單提高效率方法

少用in操作 效率極差 盡量用表關聯代替 select要指定列,不要 會讀入所有資料,而指定列則只提取涉及的列,減少io 盡量有where 減少讀取量 where操作列盡量有索引 加快查詢 mysql索引使用b tree資料結構對特定列額外組織存放,加快儲存引擎查詢記錄的速度,不需回表查詢資料的就是...

Android提高效率的工具類

每次公司新開乙個專案的時候,當用到什麼基礎工具類的時候,我們獲取會去自己寫,很多時候都是想著網上不是有現成的嗎,並上傳到github中,以後工作中再用到的話,就直接去自己倉庫中找就行了,提高了工作效率。目前該工具類中涵蓋以下工具類 assetsutils assets獲取的相關操作類 base64u...