课程名称:2周刷完100道前端优质面试真题
课程章节:第2章 前端面试技能拼图1 :数据结构和算法(上),大厂面试必考
主讲老师:双越
课程内容:
今天学习的内容包括:
2-3 科普-时间复杂度——时间复杂度是前端非常注重的,我们说的时间复杂度说的是一个算法的时间复杂度。
2-4 科普-空间复杂度——介绍空间复杂度与时间复杂度之间的关系,前端是重时间,轻空间。
课程收获:
算法需要注意的点
- 算法复杂度非常重要,不掌握无法学习算法。
- 第一次接触会有难度,理解不了就背诵,待学完本章就理解了。
什么是复杂度
- 程序执行时需要的计算量和内存空间(和代码是否简洁无关)。
- 复杂度是数量级(方便记忆、推广),不是具体的数字。
- 一般针对一个具体的算法,而非一个完整的系统。
时间复杂度:程序执行时需要的计算量(CPU)
- O(1)一次就够(数量级)。
- O(n)和传输的数据量一样(数量级)。
- O(n^2)数据量的平方(数量级)。
- o(logn)数据量的对数(数量级)。
- O(nlogn)数据量数据量的对数(数量级)。
空间复杂度:程序执行时需要的内存空间
- O(1)有限的、可数的空间(数量级)。
- O(n)和输入的数据量相同的空间(数量级)。
- 如果没有复杂度的概念和敏感度,写程序是非常危险的。
- 例如,代码功能测试正常,但数量大了,程序就会崩溃。
- 对于前端开发非常重要,尤其是时间复杂度。
- 达到O(n^2),算法基本是不可用的。
重点
- 算法复杂度是学习算法的基础,非常重要,理解不了就背诵。
- 复杂度是数量级,用O(.…)表示,内部是一个函数表达式。
- 前端开发:重时间,轻空间。
今天的 学习了时间复杂度和空间复杂度的简单介绍,突然有些明白为什么有时候写代码时,浏览器崩溃的原因了,的确需要对复杂度有一定的概念和敏感度,这样写程序才能更强壮。
下一步就是 初步学习算法了。今天学习就先到这里吧。
坚持打卡,坚持学习,未来可期,加油😀~