这次,让算法走下神坛!

栏目: 编程工具 · 发布时间: 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) 详细了解训练营

这次,让算法走下神坛!

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


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

查看所有标签

猜你喜欢:

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

C++程序设计原理与实践

C++程序设计原理与实践

(美)Bjarne Stroustrup / 王刚 等 / 机械工业出版社 / 2010.7 / 108.00元

本书是经典程序设计思想与C++开发实践的完美结合,是C++之父回归校园后对C++编程原理和技巧的全新阐述。书中全面地介绍了程序设计基本原理,包括基本概念、设计和编程技术、语言特性以及标准库等,教你学会如何编写具有输入、输出、计算以及简单图形显示等功能的程序。此外,本书通过对C++思想和历史的讨论、对经典实例(如矩阵运算、文本处理、测试以及嵌入式系统程序设计)的展示,以及对C语言的简单描述,为你呈现......一起来看看 《C++程序设计原理与实践》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具