計算機速成課 第十三集 算法入門

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) 效率不高
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章