1. 算法簡介
- 定義:解決問題的具體步驟
- 特點:即使結果一致,有些算法會更好,一般來說,所需步驟越少越好
- 歷史:算法一詞來自波斯博識者:阿爾·花拉子密,1000 多年前的代數之父之一。
2. 種類介紹
- 記載最多的算法之一是「排序」
- 使用場景:
- 找最便宜的機票
- 按最新時間排郵件
- 按姓氏排聯繫人
- 特點:排序有很多種方法
- 舉例
- 冒泡排序
- 意麪排序
- 選擇排序
- 歸併排序
- 算法複雜度 O (n * log n)
- 比「選擇排序」更有效率
- 圖搜索
- 解決該問題的算法發明者:理論計算機科學偉人 Edsger Dijkstra
- 該算法叫「Dijkstra 算法」
- 原始版本,構思於 1956 年
- 算法複雜度是 O(n ^ 2)
- 幾年後得到改進,變成 O(n log n + l)
- 圖搜索的算法有很多,每次使用谷歌地圖時,類似 Dijkstra 的算法就在服務器上運行,找最佳路線
- 使用場景:
3. 算法複雜度
- 指:算法的輸入大小和運行步驟之間的關係,表示運行速度的量級
- 計算機科學家們把算法複雜度叫「大 O 表示法」
- 舉例
- 算法複雜度 O(N^2) 效率不高