算法与数据结构(一):导论篇-算法的重要性
2017-09-13 本文已影响212人
天涯明月笙
算法与数据结构
算法相当的重要 & 算法无处不在
思考:编译器是如何理解你所写的程序的。
编译器的存在涉及着各种算法。搜索引擎:搜索算法加排序算法
遍历1亿的数据。Google定位信息。
推荐算法:
推荐算法-
推荐算法的背后机器学习。算法。
-
娱乐产品:动画片(毛发的制作,运动如何符合真实环境。天空,水等效果)| 影视后期
-
迷宫生成算法。自动生成迷宫。(扫雷)
-
消除方块(程序自动玩游戏)
- 遍历通路(图论算法)
- 电脑ai和人类对弈。深度学习算法。
- 计算机视觉算法。人脸识别。表情识别
- AR技术(绘制在虚拟世界产生真实物体)
随时都会使用算法:
- photoshop中的魔棒。
- 压缩包:压缩算法的实现。
- 数据库:算法库。只需要简单的sql语句可以实现。
- 性能优化。依托算法,快速运算。
- 苹果iWatch-》watch os3的instant launch。软件运行速度七倍
算法是非常有用的。我们每天都在接触算法
学好算法,才能创造出更有意义的东西。
学习数学类似,要积累。
课程简介
学习要求:
- c++
- 拥有自己的编译环境
- 其实算法与语言无关
- 需要掌握最基础的语言知识
- 了解数组,链表,堆,栈等线性结构
- 对于基本的算法知识有常识性的了解:如递归,遍历,算法复杂度
- 对于特殊算法,算法复杂度怎么来的做粗略介绍。
- 主要:不同算法实现同一个功能的差距,算法适用的不同场合。区别。
学习路径:
- 线性(排序)
- 树形结构(应用场合&特点&局限性)
- 图形结构 (图论相关的基础方法)
利用动画展示:
归并排序编程次要,思想更重要。
算法是一种思想。争取支持更多语言:java,python等
白板编程:不给编译器,给一个白板,直接写代码-考查算法思想的基本功
数据结构的重要性:
数据结构的重要性算法+数据结构 = 编程;
微软:写堆。二叉树的翻转。基础才能对精巧的算法产生思路。
无法覆盖所有的数据结构和算法
- 堆:斐波那契堆
- 树:线段树
- 图:网络流
更新相关代码。打牢基础。
算法思想
算法思想将算法思想的讲解融入基础数据结构的使用。
面试问题的相关算法。
各个领域都有算法:
算法在各个领域计算机编程是门艺术而不是搬砖。
艺术之禅