1. 程式人生 > >作為程式設計師應該瞭解的32個演算法(持續更新)

作為程式設計師應該瞭解的32個演算法(持續更新)

演算法就是解決問題的一種模式,通過演算法我們可以更輕鬆快速的解決問題。作為程式設計師,我們應該熟練掌握一些演算法並瞭解多個演算法。 我會持續不斷的更新這篇文章,爭取把這些演算法都給描述一下,用自己的思維方式給大家講解一下。

來自百度百科: 演算法(Algorithm)是指解題方案的準確而完整的描述,是一系列解決問題的清晰指令,演算法代表著用系統的方法描述解決問題的策略機制。也就是說,能夠對一定規範的輸入,在有限時間內獲得所要求的輸出。如果一個演算法有缺陷,或不適合於某個問題,執行這個演算法將不會解決這個問題。不同的演算法可能用不同的時間、空間或效率來完成同樣的任務。一個演算法的優劣可以用空間複雜度與時間複雜度來衡量。

A搜尋演算法

集束搜尋

二分查詢

分支界定演算法

Buchberger演算法

資料壓縮

金鑰交換演算法

Dijkstra演算法

離散微分演算法

動態規劃演算法

歐幾里得演算法

期望-最大演算法

快速傅立葉變換

梯度下降

雜湊演算法

堆排序

Karatsuba乘法

LLL演算法

最大流量演算法

合併排序

牛頓法

Q-learning

兩次篩法

RANSAC

RSA

Strassen演算法

單純型演算法

奇異值分解

求解線性方程組

Strukturtensor

合併查詢演算法

維特比演算法