在极客时间上订阅王争老师的《数据结构与算法之美》有一段时间了,不仅让我学习了以前没有接触过的算法和数据结构,更重要的是让我懂得了如何学习数据结构和算法。数据结构与算法应该说是计算基础中的基础,在学习算法之前最好对计算机的原理有一定的了解,不然很难理解数组和链表的实现,所以大学计算机专业都会有算法课,一般都会在大二、大三(大一一般学习C语言、计算机组成原理)。
复杂度是一个算法的重要指标:时间复杂度、空间复杂度。我们希望“多快好省”实现某个功能,即希望执行时间快,又希望占用内存少,然而鱼与熊掌不可得兼,某些情况下就会“空间换时间”、”时间换空间“。复杂度分析是比较难的,通过公式进行推导,这要求有良好的数学基础。
为什么要学习算法?
1.算法是计算机的基础,基础不牢走不远。
2.大厂面试,算法必问。
3.帮助自己编写高性能的代码。
4.算法,是一种解决问题的思路和方法,有机会应用到生活和事业的其他方面。
5.长期来看,大脑思考能力是个人最重要的核心竞争力,而算法是为数不多的能够有效训练大脑思考能力的途径之一。
算法易学,应用最难。好比解数学题,公式易懂,但不一定能解出题目来,一道数学题可能用到多个知识点,同样的一个问题可能也需要用到多种算法,而且还没有标准答案。怎么办?只有多学多练,熟能生巧。
总之,数据结构与算法是前辈们智慧的结晶,学习数据结构与算法才是软件编程的捷径。