千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術(shù)干貨  > 十個改變世界的計算機算法

十個改變世界的計算機算法

來源:千鋒教育
發(fā)布人:小千
時間: 2021-01-12 09:04:00 1610413440

      算法的出現(xiàn)幫助我們解決了生活中很多常見的問題,讓一些事看起來沒有那么的復(fù)雜,今天小千就來給大家介紹十個改變了計算機世界的算法。

什么是算法?

簡而言之,任何定義明確的計算步驟都可稱為算法,接受一個或一組值為輸入,輸出一個或一組值。(來源:homas H. Cormen, Chales E. Leiserson 《算法導論第3版》)可以這樣理解,算法是用來解決特定問題的一系列步驟(不僅計算機需要算法,我們在日常生活中也在使用算法)。

算法必須具備如下3個重要特性:有窮性,執(zhí)行有限步驟后,算法必須中止。確切性,算法的每個步驟都必須確切定義。

可行性,特定算法須可以在特定的時間內(nèi)解決特定問題。

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

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

01、歸并排序(MERGE SORT)、快速排序(QUICK SORT)、堆積排序(HEAP SORT)

 

1

哪個排序算法效率最高?這要看情況。這也就是我把3種算法放在一起講的原因,可能你更常用其中一種,不過它們各有千秋。歸并排序算法,是目前為止最重要的算法之一,是分治法的一個典型應(yīng)用,由數(shù)學家John von Neumann于1945年發(fā)明??焖倥判蛩惴?,結(jié)合了集合劃分算法和分治算法,不是很穩(wěn)定,但在處理隨機列陣(AM-based arrays)時效率相當高。堆積排序,采用優(yōu)先佇列機制,減少排序時的搜索時間,同樣不是很穩(wěn)定。與早期的排序算法相比(如冒泡算法),這些算法將排序算法提上了一個大臺階。也多虧了這些算法,才有今天的數(shù)據(jù)發(fā)掘,人工智能,鏈接分析,以及大部分網(wǎng)頁計算工具。

02、傅立葉變換、快速傅立葉變換

2

這兩種算法簡單,但卻相當強大,整個數(shù)字世界都離不開它們,其功能是實現(xiàn)時間域函數(shù)與頻率域函數(shù)之間的相互轉(zhuǎn)化。能看到這篇文章,也是托這些算法的福。因特網(wǎng),WIFI,智能機,座機,電腦,路由器,衛(wèi)星等幾乎所有與計算機相關(guān)的設(shè)備都或多或少與它們有關(guān)。不會這兩種算法,你根本不可能拿到電子,計算機或者通信工程學位。(USA)

03、迪杰斯特拉算法 (Dijkstra’s algorithm)

3

可以這樣說,如果沒有這種算法,因特網(wǎng)肯定沒有現(xiàn)在的高效率。只要能以“圖”模型表示的問題,都能用這個算法找到“圖”中兩個節(jié)點間的最短距離。雖然如今有很多更好的方法來解決最短路徑問題,但代克思托演算法的穩(wěn)定性仍無法取代。

04、RSA非對稱加密算法

毫不夸張地說,如果沒有這個算法對密鑰學和網(wǎng)絡(luò)安全的貢獻,如今因特網(wǎng)的地位可能就不會如此之高?,F(xiàn)在的網(wǎng)絡(luò)毫無安全感,但遇到錢相關(guān)的問題時我們必需要保證有足夠的安全感,如果你覺得網(wǎng)絡(luò)不安全,肯定不會傻乎乎地在網(wǎng)頁上輸入自己的銀行卡信息。RSA算法,密鑰學領(lǐng)域最牛叉的算法之一,由RSA公司的三位創(chuàng)始人提出,奠定了當今的密鑰研究領(lǐng)域。用這個算法解決的問題簡單又復(fù)雜:保證安全的情況下,如何在獨立平臺和用戶之間分享密鑰。

4

05、哈希算法(Hash Algorithm)

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

5

06、整數(shù)質(zhì)因子分解算法(Integer factorization)

6

07、鏈接分析算法(Link Analysis)

7

在因特網(wǎng)時代,不同入口間關(guān)系的分析至關(guān)重要。從搜索引擎和社交網(wǎng)站,到市場分析工具,都在不遺余力地尋找因特網(wǎng)的正真構(gòu)造。鏈接分析算法一直是這個領(lǐng)域最讓人費解的算法之一,實現(xiàn)方式不一,而且其本身的特性讓每個實現(xiàn)方式的算法發(fā)生異化,不過基本原理卻很相似。鏈接分析算法的機制其實很簡單:你可以用矩陣表示一幅“圖“,形成本征值問題。本征值問題可以幫助你分析這個“圖”的結(jié)構(gòu),以及每個節(jié)點的權(quán)重。這個算法于1976年由Gabriel Pinski和Francis Narin提出。誰會用這個算法呢?Google的網(wǎng)頁排名,F(xiàn)acebook向你發(fā)送信息流時(所以信息流不是算法,而是算法的結(jié)果),Google+和Facebook的好友推薦功能,LinkedIn的工作推薦,Youtube的視頻推薦,等等。普遍認為Google是首先使用這類算法的機構(gòu),不過其實早在1996年(Google 問世2年前)李彥宏就創(chuàng)建的“RankDex”小型搜索引擎就使用了這個思路。而Hyper Search搜索算法建立者馬西莫·馬奇奧里也曾使用過類似的算法。這兩個人都后來都成為了Google歷史上的傳奇人物。

08、比例微積分算法(Proportional Integral Derivative Algorithm)

飛機,汽車,電視,手機,衛(wèi)星,工廠和機器人等等事物中都有這個算法的身影。簡單來講,這個算法主要是通過“控制回路反饋機制”,減小預(yù)設(shè)輸出信號與真實輸出信號間的誤差。只要需要信號處理,或電子系統(tǒng)來控制自動化機械,液壓和加熱系統(tǒng),都需要用到這個算個法。沒有它,就沒有現(xiàn)代文明。

8

09、數(shù)據(jù)壓縮算法

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

9

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

10、隨機數(shù)生成算法

到如今,計算機還沒有辦法生成“正真的”隨機數(shù),但偽隨機數(shù)生成算法就足夠了。

這些算法在許多領(lǐng)域都有應(yīng)用,如網(wǎng)絡(luò)連接,加密技術(shù),安全哈希算法,網(wǎng)絡(luò)游戲,人工智能,以及問題分析中的條件初始化。

10

最后歡迎大家添加我們的Java技術(shù)分享交流qq群:858309610  加群找管理要免費的學習資料和項目代碼,等你來哦~~~

tags:
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內(nèi)將與您1V1溝通
免費領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學 138****2860 剛剛成功領(lǐng)取
王同學 131****2015 剛剛成功領(lǐng)取
張同學 133****4652 剛剛成功領(lǐng)取
李同學 135****8607 剛剛成功領(lǐng)取
楊同學 132****5667 剛剛成功領(lǐng)取
岳同學 134****6652 剛剛成功領(lǐng)取
梁同學 157****2950 剛剛成功領(lǐng)取
劉同學 189****1015 剛剛成功領(lǐng)取
張同學 155****4678 剛剛成功領(lǐng)取
鄒同學 139****2907 剛剛成功領(lǐng)取
董同學 138****2867 剛剛成功領(lǐng)取
周同學 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
為什么sql語句不支持關(guān)系代數(shù)中的除法?

為什么SQL語句不支持關(guān)系代數(shù)中的除法1. SQL和關(guān)系代數(shù)的關(guān)系:SQL是一種基于關(guān)系代數(shù)的查詢語言,它的設(shè)計初衷是為了能夠以一種更接近自然語言...詳情>>

2023-10-14 04:07:35
sql 怎么根據(jù)父id查詢下三級子集?

一、概述處理樹形數(shù)據(jù)時,我們常常需要根據(jù)父ID查詢其下的子集。本文將引導您如何使用SQL進行這一操作,尤其是查詢下三級子集。二、查詢方法詳...詳情>>

2023-10-14 03:59:07
什么是分治算法,和遞歸有什么關(guān)系?

分治算法是什么分治算法是一種算法設(shè)計思想,其主要思想是將一個復(fù)雜的問題分解為兩個或更多相同或相似的子問題,直到子問題簡單到可以直接解決...詳情>>

2023-10-14 03:22:51
為什么微服務(wù)一定要上Docker?

為什么微服務(wù)一定要上Docker微服務(wù)作為一種軟件架構(gòu)模式,需要考慮的因素包括服務(wù)的獨立性、可擴展性、可維護性和可移植性等。這其中,Docker的...詳情>>

2023-10-14 03:15:33
C++的traits技術(shù)到底是什么?

在C++編程中,traits是一種編程技巧,其主要目的是在編譯時提供關(guān)于類型的額外信息。它可以將類型的一些特性(如其關(guān)聯(lián)類型、屬性、函數(shù)等)抽...詳情>>

2023-10-14 03:00:03