計算機科學中最重要的算法是什麼算法?

抬頭笑笑咯J


要說計算機科學中最重要的算法是什麼,我覺得沒有固定答案,很多算法其實都很重要的。我可以大致總結一下目前主導計算機世界的十大算法。

一. 排序算法

目前的排序算法類型、時間複雜度和穩定性如下表

那麼,排序算法為什麼這麼重要? 它應用到方方面面,隨便舉幾個例子,商業計算、任務調度、負載均衡等等。

二. 快速傅里葉變換

快速傅里葉變換相當強大,整個數字世界都離不開它,其功能是實現時間域函數與頻率域函數之間的相互轉化。因特網,WIFI,智能機,座機,電腦,路由器,衛星等幾乎所有與計算機相關的設備都或多或少與它們有關。

三. 迪傑斯特拉算法

如果沒有迪傑斯特拉算法,因特網肯定沒有現在的高效率。只要是用圖模型表示的問題,都能用它找到圖中任意兩點之間的最短距離。

四. RSA非對稱加密算法

如果沒有這個算法,現在的網絡毫無安全可言,遇到錢有關的應用都需要用到這種算法,它對密鑰學和網絡安全的貢獻非常大。

五. 哈希安全算法

安全哈希算法主要適用於數字簽名標準裡面定義的數字簽名算法。無論是你的應用商店,電子郵件和殺毒軟件,還是瀏覽器等,都使用這種算法來保證你正常下載,用來驗證數據的完整性。

六. 整數質因子分解算法

如果沒有這個算法,加密信息也不會如此安全。它可以將一個整數分解成不可分解的素因子。很多加密協議都採用了這個算法,比如上面的RSA非對稱加密算法。

七. 鏈接分析算法

Google的PageRank算法就是一種搜索引擎常用的鏈接分析方法,例如網頁的排名優化,推薦系統的推薦功能都離不開。

八. 比例微積分算法

飛機,汽車,電視,手機,衛星,工廠和機器人等等事物中都有這個算法的身影。簡單來講,這個算法主要是通過控制迴路反饋機制,減小預設輸出信號與真實輸出信號間的誤差。

九. 數據壓縮算法

你正在看的這個網頁就是使用數據壓縮算法將信息下載到你的電腦上。除文字外,遊戲,視頻,音樂,數據儲存,雲計算等等都是。它讓各種系統更輕鬆,效率更高。

十. 隨機數生成算法

到如今計算機生成的隨機數都是偽隨機數,還沒有辦法生成真正的隨機數。我瞭解到的最好的偽隨機數生成算法是

梅森旋轉算法。網絡連接,加密技術,安全哈希算法,網絡遊戲,人工智能都離不開隨機數生成算法。


薛定諤的小貓貓


當然是窮舉法。這是最普通的搜索算法,只要計算機足夠強大,就可以搜索到想要的結果。我舉個很簡單的例子,比如for循環和while就是窮舉的一種程序邏輯表現方式,像暴力破解密碼也是窮舉的一種方式,都是通過不斷迭代來找到正確的值後停止或執行下一步程序。

像之前大家還在討論CPU買i3和I5的性能有些差異,到現在基本都忽略不計,因為電腦日常軟件的運行CPU已經足已輕鬆負載,瓶頸上限反而在內存和硬盤上。像現在為了提高機器學習算法的訓練速度,也就是搜索最優解的速度,都用上了GPU或者TPU這種高性能的矩陣運算組件,所以現在機器在日常生活中計算性能都是過剩狀態,讓普通的搜索算法也有了發揮的餘地。

還記不記得去年火熱的圍棋AI中AlphaGo,

它用的核心算法——蒙特卡羅算法也是一種搜索算法,簡單來說就是通過儘量採樣去獲得最優解。是不是也很像窮舉法,但是比窮舉要聰明得多,通過概率和規則最快找到最優路徑。

當然以上窮舉法是一種算法思想,具體最重要的算法我覺得是圖搜索算法,應該大家都很熟悉它,這個學過數據結構的人都知道,形式也非常簡單,具體如下:

一般如果要處理到樹結構,或者做循環嵌套關係時都可能要用的該算法來解決,它也引出了我最喜歡的兩個算法,像取深度最深的時候,就是深度優先搜索算法(DFS),取深度最淺的時候,就是廣度優先搜索算法(BFS)。

總而言之,在計算機用到的最基礎算法除了二進制加法和邏輯門之外,搜索算法是其中之一。到了人類製造出一臺算力足夠強的超級計算機時,那麼簡單地窮舉足以解決一部分問題了。你覺得計算機中最重要的算法是什麼?歡迎在討論區中探討討論,互相交流學習。


如果你對學習人工智能和科技新聞感興趣,歡迎訂閱我的頭條號。我會在這裡發佈所有與科技、科學以及機器學習有關的有趣文章。偶爾也回答有趣的問題,有問題可隨時在評論區回覆和討論,看到即回。


叔沐白


應該是簡單加法算法——在二進制中,即0+0=0,1+0=1,0+1=1,1+1=10。注意,這裡所說的簡單加法算法,是計算這個結果的方法。這個計算方法其實就是我們熟悉的在紙上計算十進制數加法的計算方式——從最低位開始,計算對應位的和,以及向上一位的進位。這個算法也稱紙筆算法。

計算機的核心是CPU,而CPU的核心功能就是算術運算,而加減乘除所有計算的基礎就是加法器,加法器實現的就是簡單加法算法。

所以,計算機中進行的幾乎所有工作,歸根結底,是加法計算。(除了移位和取反)


縱橫無限


計算機科學中算法多如牛毛,如何衡量重要性,決定了算法的不同。

從基礎上講,用到最多的算法是檢索。初級用枚舉,中級用二分,高級用B樹。

基礎算法的組合應用又產生了無數的大的算法,如人工智能中的深度學習算法,就是有無數個基礎算法組成的。而我們生活中的很多工具如優選、最佳路徑、最大效益等算法,也都是基礎算法的組合。

各行各業對算法的重視程度不同,但基礎算法總是繞不過去。因此,最重要的算法就是檢索、B樹。


分享到:


相關文章: