计算机速成课 第十三集 算法入门

230 阅读1分钟

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) 效率不高