算法是 “ 玄学 ” 吗?
很多 程序员 对各种 排序 、搜索、遍历等常用算法了如指掌,但遇到实际问题时还是 束手无策 。耳熟能详的三本算法书 《算法》、《算法导论》、《算法图解》 ,却一本都没读完:
“看了半年的《算法》这本书,才看了几十页”
“4 年了,还是没有啃完《算法导论》”
有的朋友 觉得像人工智能、数据搜索与挖掘这样高薪的工作才用得上算法,觉得算法深不可测 ,只可远观。
这次,我将会用一些通俗的案例解释算法,让算法走下神坛。首先,我主张用 “玩” 的思想来学习算法,“玩算法”就是要能够做到以下三点:
1、对遇到的特殊问题能够自己设计出算法实现(可能是竞赛的题目,也可能是工作中遇到的实际问题);
2、对于原理公开的知名算法,要能将算法原理翻译成具体的算法代码
3、对已有具体实现的算法,要能够设计出合适的数学模型,将算法应用到实际问题中。
要想做到以上三点,除了熟练掌握各种常用的基础算法外,还需要了解算法设计的常用思想模式,掌握将题目转换成数据模型,再进一步用数据结构实现数据模型的一般方法。
如果你觉得学习算法困难,是因为你没有掌握算法的设计模式。 这里我也准备了一份入门测试题,都是与算法相关的基础知识点,每道题下方都有正确答案,大家可以点击查看,希望能通过这份测试题让你看到自己的 欠缺 之处,查缺补漏,学习更有针对性。
1、求最优解的常用算法模式有哪些?(请至少列举两种)
(点击空白处查看内容)
▼
答案:穷举法、贪婪法、动态规划法等,答对两个即可。
2、A 算法的时间复杂度是 O(n2),B 算法的时间复杂度是 O(n),说明 B 算法的运算速度快。(判断题)
(点击空白处查看内容)
▼
答案:错。
3、在 Java 或 C++ 编程语言中,可以直接用 == 来判断两个浮点数相等吗?为什么能(或不能)?
(点击空白处查看内容)
▼
答案:不能,因为浮点数在计算机内的表达有误差,直接用 == 判断两个浮点数是否相等是不安全的。当然,对于能够精确表达的浮点数,比如 0、0.5(1/2)、0.25(1/4)等浮点数,用 == 判等是没有问题的;其他情况,用 == 判断两个浮点数是否相等可能会得到意想不到的结果。
4、无序的一维表查找时间复杂度是什么,有序的一维表查找时间复杂度又是什么?
(点击空白处查看内容)
▼
答案:无序表的查找时间复杂度是 O(n),有序表的查找时间复杂度是 O(logn2)
5、迭代法的三要素是什么?
(点击空白处查看内容)
▼
答案:迭代变量、迭代递推关系和迭代终止条件
6、动态规划的子问题和分治法的子问题在要求上有什么区别?
(点击空白处查看内容)
▼
答案:动态规划的子问题有“无后向性”要求
7、分治法只能用递归方式设计程序实现(判断题)
(点击空白处查看内容)
▼
答案:错
8、Dijkstra 算法是用来求解什么问题的算法,与之类似目的的算法还有哪些?
(点击空白处查看内容)
▼
答案:Dijkstra 算法是求最短路径的算法,与之类似目的的算法还有 Floyd 算法,A* 算法等。
这 8 道测试题均摘自我的《28 天玩转算法训练营》, 同时,以上提到的算法只是本次算法训练营的部分课程内容,推荐大家订阅 02 期算法训练营,学习系统全面的算法知识。
扫码了解算法训练营
▼
当然一个人不可能看几篇文章就能全面掌握各种问题的解决方法,这种能力其实就是 经验 和 方法集 的问题,多练习、多思考,学会总结和归纳,是提高解决实际问题的关键。
在 GitChat 02 期算法训练营中,我讲解的算法实例基本覆盖了各种 算法比赛 中经常出现的题目以及 工作中常见的 一些有趣的算法实例。在算法实现的过程中,还会详细介绍针对各个问题的建模过程,让你在学习之后能 举一反三 ,以后遇到类似的问题,可以自己设计并实现解决问题的算法。
训练营学习方式
图文课程学习+班级群讨论+高强度课后题实战+助教1V1督学+老师解答各种疑难问题,由助教老师全程带班。
训练营学习时间
训练营周期 5月27日-6月23日,正常学习周期为 4 周左右,课程购买后一直可看。
训练营助学奖励
-
开营礼包(内含 20 元课程代金券)
-
全勤奖(99 元助学金返现)
-
优秀学员奖(199 元助学金返现)
训练营报名须知
-
购买后一定记得添加助教-梦梦微信
-
本期报名截止:2019.05.26
-
本期开营日期:2019.05.27
-
本期结营日期:2019.06.23
-
限购名额:200 人
-
训练营课程为图文+社群学习形式
-
训练营课程为虚拟商品,一经付费概不退款,敬请谅解
有任何售前疑问请咨询小助手
扫码加微信 (gitchat2018) 详细了解训练营
参加了算法训练营之后你会发现,算法并非是枯燥、抽象的代码,算法的设计和应用是一件十分有趣的事情,学习之后觉得意犹未尽。 点击 阅读原文 抢座报名,现在报名还能享受优惠价格哦!
以上所述就是小编给大家介绍的《这次,让算法走下神坛!》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Game Engine Architecture, Second Edition
Jason Gregory / A K Peters/CRC Press / 2014-8-15 / USD 69.95
A 2010 CHOICE outstanding academic title, this updated book covers the theory and practice of game engine software development. It explains practical concepts and techniques used by real game studios,......一起来看看 《Game Engine Architecture, Second Edition》 这本书的介绍吧!
Base64 编码/解码
Base64 编码/解码
UNIX 时间戳转换
UNIX 时间戳转换