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