如果你成为一名程序员,你可能想学习算法和数据结构,特别是你没有在学校学过这门课程。
但是,你在写应用程序的时候,什么时候自己写过链表?什么时候自己写过排序?答案是:几乎从不。
然而...
了解一些通过算法来解决棘手问题的策略,一点点的改善你的想法和代码。
知道更多的数据结构,而不仅仅是标准的数组和字典,你会得到一个更大的工具箱,你可以用来构建自己的应用程序。
它会让你成为一个更好的开发者! (和挣更多的钱!)
算法可以让你办你办不了的事。
有一些应用程序我写不出来,是因为一些根本问题我无法解决。
通常是速度上的问题:我的程序不够快。 现在回想一下,遇到这些问题是因为选择了错误的算法。 如果我早知道更多关于O(n)和O(n ^ 2)之间的差别,那么也许我就搞定了。
暴力解决方案适用于少量数据,但有时你需要处理大量数据。 然后你需要更聪明的算法。
有时候并不是速度问题,而是我根本不知道如何下手。 理解一点算法理论,你可以尝试更多种方法。
算法不像听起来那么可怕。
很多算法教科书从一大堆数学开始。 说真的,数学是有用的,但大多数时候你不会需要它。 所以不要让数学吓到你。 如果你会编写代码,你也可以理解所有这些奇特的算法和数据结构。
相信我,算法很有趣。 :-)
英文链接:
https://github.com/raywenderlich/swift-algorithm-club/blob/master/Why%20Algorithms.markdown