主宰全球的10大算法

摘要:Reddit有篇帖子介紹了算法對我們現在生活的重要性,以及哪些算法對現代文明所做貢獻最大,一起來看下。

【編者按】Reddit有篇帖子介紹了算法對我們現在生活的重要性,以及哪些算法對現代文明所做貢獻最大。這個表單并不完整,很多與我們密切相關的算法都沒有提到,如機器學習和矩陣乘法,歡迎你繼續補充。

如果對算法有所了解,讀這篇文章時你可能會問“作者知道算法為何物嗎?”,或是“Facebook的‘信息流’(News Feed)算是一種算法嗎?”,如果“信息流”是算法,那就可以把所有事物都歸結為一種算法。才疏學淺,結合那篇帖子,接下來我試著解釋一下算法是什么,又是哪些算法正在主導我們的世界。


什么是算法?

簡而言之,任何定義明確的計算步驟都可稱為算法,接受一個或一組值為輸入,輸出一個或一組值。(來源:homas H. Cormen, Chales E. Leiserson 《算法導論第3版》)

可以這樣理解,算法是用來解決特定問題的一系列步驟(不僅計算機需要算法,我們在日常生活中也在使用算法)。算法必須具備如下3個重要特性:

  1. 有窮性,執行有限步驟后,算法必須中止。
  2. 確切性,算法的每個步驟都必須確切定義。
  3. 可行性,特定算法須可以在特定的時間內解決特定問題,

其實,算法雖然廣泛應用在計算機領域,但卻完全源自數學。實際上,最早的數學算法可追溯到公元前1600年-Babylonians有關求因式分解和平方根的算法。

那么又是哪10個計算機算法造就了我們今天的生活呢?請看下面的表單,排名不分先后:

1. 歸并排序(MERGE SORT)、快速排序(QUICK SORT)和堆積排序(HEAP SORT)


哪個排序算法效率最高?這要看情況。這也就是我把3種算法放在一起講的原因,可能你更常用其中一種,不過它們各有千秋。

歸并排序算法,是目前為止最重要的算法之一,是分治法的一個典型應用,由數學家John von Neumann于1945年發明。

快速排序算法,結合了集合劃分算法和分治算法,不是很穩定,但在處理隨機列陣(AM-based arrays)時效率相當高。

堆積排序,采用優先佇列機制,減少排序時的搜索時間,同樣不是很穩定。

與早期的排序算法相比(如冒泡算法),這些算法將排序算法提上了一個大臺階。也多虧了這些算法,才有今天的數據發掘,人工智能,鏈接分析,以及大部分網頁計算工具。

2. 傅立葉變換和快速傅立葉變換

這兩種算法簡單,但卻相當強大,整個數字世界都離不開它們,其功能是實現時間域函數與頻率域函數之間的相互轉化。能看到這篇文章,也是托這些算法的福。

因特網,WIFI,智能機,座機,電腦,路由器,衛星等幾乎所有與計算機相關的設備都或多或少與它們有關。不會這兩種算法,你根本不可能拿到電子,計算機或者通信工程學位。(USA)

3. ?迪杰斯特拉算法?(Dijkstra’s algorithm)

可以這樣說,如果沒有這種算法,因特網肯定沒有現在的高效率。只要能以“圖”模型表示的問題,都能用這個算法找到“圖”中兩個節點間的最短距離。

雖然如今有很多更好的方法來解決最短路徑問題,但代克思托演算法的穩定性仍無法取代。

4. RSA非對稱加密算法


毫不夸張地說,如果沒有這個算法對密鑰學和網絡安全的貢獻,如今因特網的地位可能就不會如此之高。現在的網絡毫無安全感,但遇到錢相關的問題時我們必需要保證有足夠的安全感,如果你覺得網絡不安全,肯定不會傻乎乎地在網頁上輸入自己的銀行卡信息。

RSA算法,密鑰學領域最牛叉的算法之一,由RSA公司的三位創始人提出,奠定了當今的密鑰研究領域。用這個算法解決的問題簡單又復雜:保證安全的情況下,如何在獨立平臺和用戶之間分享密鑰。

5. 哈希安全算法(Secure Hash Algorithm)

確切地說,這不是一種算法,而是一組加密哈希函數,由美國國家標準技術研究所首先提出。無論是你的應用商店,電子郵件和殺毒軟件,還是瀏覽器等等,都使用這種算法來保證你正常下載,以及是否被“中間人攻擊”,或者“網絡釣魚”。

6. 整數質因子分解算法(Integer factorization)

這其實是一個數學算法,不過已經廣泛應用與計算機領域。如果沒有這個算法,加密信息也不會如此安全。通過一系列步驟將,它可以將一個合成數分解成不可再分的數因子。

很多加密協議都采用了這個算法,就比如剛提到的RSA算法。

7. 鏈接分析算法(Link Analysis)


在因特網時代,不同入口間關系的分析至關重要。從搜索引擎和社交網站,到市場分析工具,都在不遺余力地尋找因特網的正真構造。

鏈接分析算法一直是這個領域最讓人費解的算法之一,實現方式不一,而且其本身的特性讓每個實現方式的算法發生異化,不過基本原理卻很相似。

鏈接分析算法的機制其實很簡單:你可以用矩陣表示一幅“圖“,形成本征值問題。本征值問題可以幫助你分析這個“圖”的結構,以及每個節點的權重。這個算法于1976年由Gabriel Pinski和Francis Narin提出。

誰會用這個算法呢?Google的網頁排名,Facebook向你發送信息流時(所以信息流不是算法,而是算法的結果),Google+和Facebook的好友推薦功能,LinkedIn的工作推薦,Youtube的視頻推薦,等等。

普遍認為Google是首先使用這類算法的機構,不過其實早在1996年(Google 問世2年前)李彥宏就創建的“RankDex”小型搜索引擎就使用了這個思路。而Hyper Search搜索算法建立者馬西莫·馬奇奧里也曾使用過類似的算法。這兩個人都后來都成為了Google歷史上的傳奇人物。

8. 比例微積分算法(Proportional Integral Derivative Algorithm)


飛機,汽車,電視,手機,衛星,工廠和機器人等等事物中都有這個算法的身影。

簡單來講,這個算法主要是通過“控制回路反饋機制”,減小預設輸出信號與真實輸出信號間的誤差。只要需要信號處理,或電子系統來控制自動化機械,液壓和加熱系統,都需要用到這個算個法。

沒有它,就沒有現代文明。

9. 數據壓縮算法

數據壓縮算法有很多種,哪種最好?這要取決于應用方向,壓縮mp3,JPEG和MPEG-2文件都不一樣。

哪里能見到它們?不僅僅是文件夾中的壓縮文件。你正在看的這個網頁就是使用數據壓縮算法將信息下載到你的電腦上。除文字外,游戲,視頻,音樂,數據儲存,云計算等等都是。它讓各種系統更輕松,效率更高。

10. 隨機數生成算法

到如今,計算機還沒有辦法生成“正真的”隨機數,但偽隨機數生成算法就足夠了。這些算法在許多領域都有應用,如網絡連接,加密技術,安全哈希算法,網絡游戲,人工智能,以及問題分析中的條件初始化。

原文出自:199it

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/447576.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/447576.shtml
英文地址,請注明出處:http://en.pswp.cn/news/447576.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

企業貢獻開源,其背后的戰略動機是什么?

本文作者Balaji Viswanathan通過對Google、Apple、Facebook、Android、Openstack項目等案例進行分析,總結了企業在開源上的戰略性選擇,是很有可能幫助企業戰勝對手的絕好手段。大多數公司通過使用開源軟件獲得了很多競爭上的優勢,這一點毋庸置…

解決:[ERROR] Error executing Maven. [ERROR] 1 problem was encountered while building the effective set

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 1. 報錯如下: [ERROR] Error executing Maven. [ERROR] 1 problem was encountered while building the effective setting…

貢獻開源項目沒那么簡單,你要負責到底

貢獻開源項目不是一件簡單的事,不是說上傳項目到Github或類似的網站,就萬事大吉了,更不能認為你的項目代碼現在已經開源了。還有很多事情要跟進完善。也就是說你要對這個項目負責到底。從長遠角度來看,開源貢獻必須是一條雙行道。…

mybatis show sql 打印 SQL 語句到控制臺

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 方法一&#xff1a; 即&#xff1a; <?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE configuratio…

解決:Throwable:Stub index points to a file without PSI: com.intellij.openapi.fileTypes.UnknownFileType

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 1. IDEA 報錯&#xff1a;stub index point to a file without PSI 并且IDEA 中左邊欄部分內容不斷刷新&#xff0c;死循環一般的閃 .…

個人房貸為啥又貴又難貸 一個房貸銀行有3套邏輯

個人房貸頭上有三頂“帽子”&#xff1a;零售貸款、(中)長期貸款、房地產類貸款&#xff0c;三種分類對應三種邏輯 從去年底至今這段時間里有過買房辦按揭貸款經歷的人&#xff0c;很可能有這樣的困惑&#xff1a;個人征信記錄良好&#xff0c;也有穩定的收入和稅單&#xff0…

解決:Truncated incorrect DOUBLE value: xxxX-1‘

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 1. 運行 sql 報錯&#xff0c;如題&#xff1a; Truncated incorrect DOUBLE value: XXxX-1 2. 原因&#xff1a;字串要加引號&…

Python的優點

Python的優點不少&#xff0c;據很多人說是用了之后就不想再學其他語言的語言&#xff0c;羅列其優點如下&#xff1a; 1、面向對象 從根本上講&#xff0c;Python 是一種面向對象的語言。它的類模塊支持多態、操作符重載和多重繼承等高級概念&#xff0c;并且以Python 特有的簡…

IDEA 中的.iml文件和.idea文件夾 ( 隱藏方式 )

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 初次使用IDEA&#xff0c;創建一個maven工程&#xff0c;發現在目錄結構中產生了兩個不一樣的東西&#xff1a;.iml 文件和 .idea 文件夾…

python的優缺點

python的優缺點 優點 簡單————Python是一種代表簡單主義思想的語言。閱讀一個良好的Python程序就感覺像是在讀英語一樣&#xff0c;盡管這個英語的要求非常嚴格&#xff01;Python的這種偽代碼本質是它最大的優點之一。它使你能夠專注于解決問題而不是去搞明白語言本身。 易…

springCloud - 第12篇 - 服務監控 Hystrix 面板

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 前面有用過 Hystrix 熔斷&#xff0c;在多服務運行時。可以通過 Hystrix 的監控面板來實時觀察各個服務的運行健康、效率和請求量等。 …

專訪Google數據科學家彭晨:大數據成為潮流走近各行各業!

摘要&#xff1a;在“2014中美大數據研討會”開始之前&#xff0c;CSDN采訪了谷歌公司數據科學家彭晨&#xff0c;他表示之所以“大數據”火&#xff0c;是因為人類第一次可以精確的、系統的、實時的、全方位的、永久的獲取、記錄、分析、并保存海量的數據。 端午節后6月6日&a…

解決:ClassNotFoundException: com.netflix.hystrix.contrib.javanica.aop.aspectj.HystrixCommandAspect

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 1. 場景&#xff0c;springcloud 學習工程中&#xff0c;把 feign 和 ribbon 工程 作為應用服務&#xff0c;納入 hystrix-turbine 服務…

白領夫婦白手起家 6年賺得兩房兩車

“讓金錢成為你們的奴隸&#xff0c;而不是被金錢奴役著。”金先生談到他的理財經驗時如是說。從大學畢業開始&#xff0c;他通過6年在投資道路上摸爬滾打&#xff0c;靠夫妻兩人的雙手掙得了全部的家當而沒有依靠父母&#xff0c;如今已擁有兩房兩車和上百萬的資產&#xff0c…

解決:com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused:

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 1. 場景&#xff1a;啟動一個需要注冊到 eureka 注冊中心的服務 seeParam 報錯&#xff1a; com.sun.jersey.api.client.ClientHandle…

springCloud - 第13篇 - 服務監控 集群模式 Hystrix-turbine

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 1. 在springcloud 體系中&#xff0c;可以用 hystrix-dashboard 實時監控服務的運行狀態。上一文記錄了單實例的監控&#xff0c;現在實…

借錢的境界:開價越低 借成的機會反而越小

一提起借錢&#xff0c;沒有幾個人不膽戰心驚的。有限的幾張鈔票&#xff0c;好端端地隱居在自己口袋里&#xff0c;忽然一只手伸過來把它帶走&#xff0c;真教人一點安全感都沒有。借錢的威脅不下于核子戰爭&#xff1a;后者畢竟不常發生&#xff0c;而且同難者眾&#xff0c;…

解決:Error response from daemon: Cannot restart container xxx: driver failed programming external

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 1. 我的情況&#xff1a;個人站點訪問不了&#xff0c;重啟了阿里云ECS服務器后&#xff0c;發現服務器 80端口不通&#xff0c;于是重啟…

專訪許鵬:談C程序員修養及大型項目源碼閱讀與學習

摘要&#xff1a;閱讀源碼是開源項目最好的學習方式&#xff0c;然而真正的執行起來卻并不容易。這里我們為大家分享許鵬的源碼閱讀經驗、C程序員的修養以及Spark和Storm源碼走讀博文。 對許鵬的第一印象來源于其Bolg的粗讀&#xff0c;最早時候更準確說應該是博文的粗略統計—…

解決:mysql 連接報錯 Authentication plugin ‘caching_sha2_password‘cannot be loaded

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 Navicat連接linux上的mysql時報如下錯誤&#xff1a; 錯誤原因&#xff1a; 即從mysql5.7版本之后&#xff0c;默認采用了caching_sha2_…