为什么要去学习算法?

作者: chaplinthink | 来源:发表于2016-11-17 18:40 被阅读97次

算法是解决问题的手段和步骤。

针对一个算法,需要知道两件事情:

1.它能否解决特定的问题?
2.它能否有效地使用资源?

如果你写代码不能解决某个问题,或者它能解决问题,但是对资源的利用并不是高效的(比如执行所花的时间太长或者消耗了太多的内存)。那么写的代码并没有真正起到帮助的作用。

这就是为什么我们需要去学习算法。我们想要知道我们的代码是基于可以解决问题并且对资源的使用是高效的点子上。并且我们想要知道我们的解决方案针对所有可能的场景是正确和高效的。或者至少我们知道我们的算法在哪种比较少见的情况下会失败。

即使你可能更倾向于调用API中的函数而不是自己设计算法,你应该知道在实现这些API中所使用的算法和数据结构。针对每一个场景,没有哪一个数据结构是最好的选择。因此我们需要知道每种数据结构的优势和弱点。

编程本来就是跟数据结构和算法有关的事情。数据结构是用来保存数据,算法是用来使用这些数据解决问题的。如果你写程序了,你本身就在使用这两个东西。

你为什么要学习它们呢?因为你要使用它们更好并且有效率。没有学习过算法,当试图解决手头上的问题时,你将面临麻烦。你必须用你自己的方式去解决,这样可能会不是非常高效。没有学习数据结构,你面临的问题是不知道如何去选择哪一种数据结构。是应该去选择链表还是不可变的数组呢?

如果你已经知道数据结构和算法,在你写一行代码之前你就会明白这个问题。难道你不想让自己的代码高效吗?

最后,针对这个问题曾听说过这样的比喻,就好像“有一个这样的应用程序,依靠今天的天气状况将正确地预测明天的天气状况,唯一的问题是,应用程序需要两天的时间进行计算。”

相关文章

  • 为什么要去学习算法?

    算法是解决问题的手段和步骤。 针对一个算法,需要知道两件事情: 1.它能否解决特定的问题?2.它能否有效地使用资源...

  • 为什么?

    “妈妈,我们今天要去哪里?” “去幼儿园呀!” “为什么要去幼儿园?” “去学习啊!” “为什么要去学习?” “因...

  • 算法概述

    算法是什么 为什么要学习算法 怎样学习算法 算法是什么 算法是计算机用来解决问题的一系列指令。(1)算法的每一个步...

  • 数据结构和算法第一讲

    本讲内容: 为什么学习数据结构和算法?学习重点是什么?复杂度分析? 为什么学习数据结构和算法 阅读框架源码,理解其...

  • 集成学习算法

    什么是集成学习算法?集成学习算法就是将多个弱分类器(回归器)合并,组合成一个新的学习器 2.为什么用集成学习算法?...

  • 算法分析

    在《为什么要学习算法》中,我们讨论了什么是算法分析,以及为什么要进行算法分析,今天,回过头来再看其中内容,觉得仍需...

  • 算法的时间复杂度分析

    学习算法的读书笔记据说, 学习算法时, 时间复杂度是精髓, 把时间复杂度搞清楚, 算法就学成一半了? 为什么要学习...

  • 为什么读《算法(第四版)》

    为什么想学习算法 学习算法一般有很多原因,总结比较重要的两点: 1。更好的设计编程,算法是根本,是基础 2。更好的...

  • 实用教学|算法中的距离计算:距离度量的几种方法

    算法是什么?为什么要学习算法?请看下面这个案例(外行看热闹,内行看门道)。 懂算法的程序员: 不懂算法的程序员: ...

  • C++ 学习之(一):面试中的算法和准备过程

    面试中的算法和准备过程 从一道入门题说起 为什么要学习算法 如何准备面试算法 代码风格 了解算法面试的模板 常用工...

网友评论

    本文标题:为什么要去学习算法?

    本文链接:https://www.haomeiwen.com/subject/jazdpttx.html