声明:算法和数据结构的文章均是作者从github上翻译过来,为方便大家阅读。如果英语阅读能力强的朋友,可以直接到swift算法俱乐部查看所有原文,以便快速学习。作者同时也在学习中,欢迎交流。
如果你已经写了不少代码,你可能想知道学习算法和数据结构的意义,特别是当你没有系统的计算机科学或者工程背景。
回想一下,在你在写app的时候,你觉得你会多经常去使用链接或者自己专门去写分类子程序,我想答案是:几乎没有。
但是….
了解一些算法解决棘手问题的思路可以给你不少新的想法,用来提升你自己的代码。
了解更多的数据结构,不单单是常规的数组和字典等,可以让你在建立自己的app的时候,有更多的备选工具。
了解它们会让你变成一个更好的开发者(然后赚更多的钱¥¥¥)
算法可以让你构建出你曾经不会构建的软件
因为无法理解一些基础的问题,过去有很多应用我自己无法创建出来。
更多的时候,主要原因都是速度,我无法让程序跑得足够快。现在回想起来,当时是我选择了错误的算法去处理我遇到的问题。如果我当时知道O(n)和O(n^2)的区别,我想当时我可能就可以实现那些程序了。
简单粗暴的解决方案可以应对总量小的数据,但是有时候你需要处理大量的数据,这时候,你就需要更合适的算法。
当然,在编程过程中我也曾经无法解决我遇到的问题,不单单是因为速度不够快,而是,我甚至不知道从哪里开始入手。这时候,了解一些算法理论可以让你有更多的方法去尝试解决遇到的问题。
不要花时间在记忆算法上
记忆算法不是主要目的,相反的,去试着了解不同的算法是如何解决不同的问题。
学习一些相关技术,比如分治算法,动态规划算法和贪婪算法。看看是什么因为让不同的算法在解决同一问题的时候出现不同的速度,并掌握它们的优缺点。
这里最主要的目的是了解我们可以如何让计算机去处理事情。
算法并不可怕
很多算法书在介绍算法的时候,往往包涵了大量的数学计算推理。但事实是,这些过程虽然有用,但你并不需要它们。所以不要因为数学而害怕接触算法。如果你可以写代码,你也可以了解所有的算法和数据结构。
相信我,算法是很有趣的
网友评论