風靡全球的十大演算法

2021-09-29 13:40:43 字數 2470 閱讀 5616

作者 | george dvorsky

編譯 | 深度學習這件小事

1 排序演算法所謂排序,就是使一串記錄,按照其中的某個或某些關鍵字的大小,遞增或遞減的排列起來的操作。排序演算法,就是如何使得記錄按照要求排列的方法。排序演算法在很多領域得到相當地重視,尤其是在大量資料的處理方面。乙個優秀的演算法可以節省大量的資源。

穩定的

不穩定的

不實用的

2 傅利葉變換與快速傅利葉變換

傅利葉是一位法國數學家和物理學家,原名是jeanbaptiste joseph fourier(1768-1830), fourier於2023年在法國科學學會上發表了一篇**,**裡描述運用正弦曲線來描述溫度分布,**裡有個在當時具有爭議性的決斷:任何連續週期訊號都可以由一組適當的正弦曲線組合而成。當時審查這個**拉格朗日堅決反對此**的發表,而後在近50年的時間裡,拉格朗日堅持認為傅利葉的方法無法表示帶有稜角的訊號,如在方波**現非連續變化斜率。直到拉格朗日死後15年這個**才被發表出來。誰是對的呢?拉格朗日是對的:正弦曲線無法組合成乙個帶有稜角的訊號。但是,我們可以用正弦曲線來非常逼近地表示它,逼近到兩種表示方法不存在能量差別,基於此,傅利葉是對的。為什麼我們要用正弦曲線來代替原來的曲線呢?如我們也還可以用方波或三角波來代替呀,分解訊號的方法是無窮多的,但分解訊號的目的是為了更加簡單地處理原來的訊號。用正余弦來表示原訊號會更加簡單,因為正余弦擁有原訊號所不具有的性質:正弦曲線保真度。乙個正余弦曲線訊號輸入後,輸出的仍是正余弦曲線,只有幅度和相位可能發生變化,但是頻率和波的形狀仍是一樣的。且只有正余弦曲線才擁有這樣的性質,正因如此我們才不用方波或三角波來表示。

3 dijkstra 演算法

dijkstra演算法是典型的演算法。dijkstra演算法是很有代表性的演算法。dijkstra一般的表述通常有兩種方式,一種用永久和臨時標號方式,一種是用open, close表的方式,這裡均採用永久和臨時標號的方式。注意該演算法要求圖中不存在負權邊。

4 rsa演算法變換

rsa是目前最有影響力的公鑰加密演算法,它能夠抵抗到目前為止已知的絕大多數密碼攻擊,已被iso推薦為公鑰資料加密標準。今天只有短的rsa鑰匙才可能被強力方式解破。到2023年為止,世界上還沒有任何可靠的攻擊rsa演算法的方式。只要其鑰匙的長度足夠長,用rsa加密的資訊實際上是不能被解破的。但在分布式計算和量子計算機理論日趨成熟的今天,rsa加密安全性受到了挑戰。

5 安全雜湊演算法

一種對輸入資訊(例如訊息)進行摘要的演算法。摘要過程能夠完成下列特點:不同的輸入資訊絕對不會具有相同的指紋:相近輸入資訊經過摘要之後的輸出資訊具有較大的差異,同時計算上很難生產乙個與給定輸入具有相同指紋的輸入。(即不可逆)。

6 整數因式分解

這是在計算機領域被大量使用的數學演算法,沒有這個演算法,資訊加密會更不安全。該演算法定義了一系列步驟,得到將一合數分解為更小因子的質數分解式。這被認為是一種fnp問題,它是np分類問題的延伸,極其難以解決。許多加密協議(如rsa演算法)都基於這樣乙個原理:對大的合數作因式分解是非常困難的。如果乙個演算法能夠快速地對任意整數進行因式分解,rsa的公鑰加密體系就會失去其安全性。量子計算的誕生使我們能夠更容易地解決這類問題,同時它也開啟了乙個全新的領域,使得我們能夠利用量子世界中的特性來保證系統安全。

7 鏈結分析

鏈結分析,源於對web結構中超連結的多維分析。當前其應用主要體現在網路資訊檢索、網路計量學、資料探勘、web結構建模等方山。作為google的核心技術之一,鏈結分析演算法應用已經顯現出j驚人的商業價值。

8 比例積分微分演算法

你是否曾經用過飛機、汽車、衛星服務或手機網路?你是否曾經在工廠工作或是看見過機械人?如果回答是肯定的,那麼你應該已經見識過這個演算法了。大體上,這個演算法使用一種控制迴路反饋機制,將期望輸出訊號和實際輸出訊號之間的錯誤最小化。無論何處,只要你需要進行訊號處理,或者你需要一套電子系統,用來自動化控制機械、液壓或熱力系統,這個演算法都會有用武之地。可以這樣說,如果沒有這個演算法,現代文明將不復存在。

9 資料壓縮演算法

10 隨機數生成

在統計學的不同技術中需要使用隨機數,比如在從統計總體中抽取有代表性的樣本的時候,或者在將實驗動物分配到不同的試驗組的過程中,或者在進行蒙特卡羅模擬法計算的時候等等。

風靡職場的十大面試題!

最能體現求職者能力的就是面試,能不能拿到offer 取決於你面試時的表現,只有有所準備才能在面試過程中游刃有餘。筆者收集了 10個面試官最愛提的問題,雖然題目千變萬化,但是萬變不離其宗,只要掌握了答題的技巧,了解面試官的出題思路,再難的題目也會迎刃而解。試題一 請介紹一下你自己 這是面試官100 會...

十大演算法解析

一 什麼是演算法?演算法就是任何明確定義的計算過程,它接收一些值或集合作為輸入,並產生一些值或集合作為輸出。這樣,演算法就是將輸入轉換為輸出的一系列計算過程。thomas h.cormen,chales e.leiserson 2009 演算法導論第三版 二 有效的演算法應該含有三個重要特性 1.演...

十大濾波演算法

10大經典濾波演算法,已在網上有很多 的。這些演算法可以說是圍繞 去除突發訊號,取中間訊號,對採集的多個訊號求平均或者根據其特性對其加權求得。這10種基本是在基礎的限幅,求平均,加權的基礎上組合得來。個人覺得,使用的時候,需具體看所採集的訊號特性,來選擇使用濾波方式,也可自己組合出新的濾波演算法。十...