这次,让算法走下神坛!

栏目: 编程工具 · 发布时间: 5年前

算法是 玄学 吗?

很多 程序员 对各种 排序 、搜索、遍历等常用算法了如指掌,但遇到实际问题时还是 束手无策 。耳熟能详的三本算法书 《算法》、《算法导论》、《算法图解》 ,却一本都没读完:

“看了半年的《算法》这本书,才看了几十页”

“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) 详细了解训练营

这次,让算法走下神坛!

参加了算法训练营之后你会发现,算法并非是枯燥、抽象的代码,算法的设计和应用是一件十分有趣的事情,学习之后觉得意犹未尽。 点击 阅读原文 抢座报名,现在报名还能享受优惠价格哦!


以上所述就是小编给大家介绍的《这次,让算法走下神坛!》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

App研发录:架构设计、Crash分析和竞品技术分析

App研发录:架构设计、Crash分析和竞品技术分析

包建强 / 机械工业出版社 / 2015-10-21 / CNY 59.00

本书是作者多年App开发的经验总结,从App架构的角度,重点总结了Android应用开发中常见的实用技巧和疑难问题解决方法,为打造高质量App提供有价值的实践指导,迅速提升应用开发能力和解决疑难问题的能力。本书涉及的问题有:Android基础建设、网络底层框架设计、缓存、网络流量优化、制定编程规范、模块化拆分、Crash异常的捕获与分析、持续集成、代码混淆、App竞品技术分析、项目管理和团队建设等......一起来看看 《App研发录:架构设计、Crash分析和竞品技术分析》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

MD5 加密
MD5 加密

MD5 加密工具