计算机速成课 第十三集 算法入门
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) 效率不高