演算法 是什麼?
Algorithm — 演算法 的完整解釋
演算法是一組定義明確的指令,用於解決特定問題或執行特定任務。它接收輸入,經過一系列步驟處理,並產生輸出。
容易混淆
演算法 vs 程式碼
演算法是做事的方法。
程式碼是把方法寫成電腦看得懂的語言。
最關鍵的區別:一個是思路,一個是實作。
演算法 vs 模型
演算法是解題流程。
模型是從資料學到的規則或參數。
最關鍵的區別:一個靠規則,一個靠訓練。
演算法 vs 流程圖
流程圖只是把步驟畫出來。
演算法還要能真的解決問題。
最關鍵的區別:流程圖是表達,演算法是方法。
記住這句就好
能把問題變成步驟的,就是演算法。
實際案例
路線規劃
導航 App 要從台北車站到目的地,不是亂猜,而是用最短路徑的演算法去找最省時或最省距離的路。
垃圾郵件判斷
郵件系統可能先做關鍵字比對,再算特徵分數,最後決定是否進垃圾桶,整套判斷流程本身就是演算法。
算法與應用
常看的三件事
時間複雜度、空間複雜度、正確性,通常是評估演算法好壞的基本三角。
常見應用
搜尋、排序、路徑規劃、文字處理、推薦排序,幾乎所有 AI 與資訊系統都離不開演算法。
情境判斷
Q1(直覺題): 你要把 1 到 100 排序,應該只看哪個方法先寫得出來嗎?
→ 不只看能不能寫出來,還要看時間和空間成本,因為演算法效率會影響實際使用。
Q2(判斷題): 一個方法在小資料上很快,但資料一大就卡住,這還算好演算法嗎?
→ 要看情況。若你的場景永遠只有小資料,它可能夠用,但只要資料規模會長大,就要重新評估。
相關術語
常見問題
演算法一定要很複雜嗎?
不一定,很多時候最好的演算法就是最簡單、最好維護的那個。
演算法和 AI 有什麼關係?
AI 系統也需要演算法來做搜尋、訓練、推論和排序,不是只有模型在工作。
為什麼時間複雜度重要?
因為資料變大時,差一個次方就可能差很多,會直接影響能不能上線。
學演算法一定要先背很多公式嗎?
不用先背,先看懂問題怎麼拆、怎麼比較方法,會比較有效。