课程名称:JavaScript版数据结构与算法
课程章节:数据结构与算法简介
课程讲师: lewis
课程内容:
- 课程介绍最近学习
- 数据结构与算法简介
- 如何刷 LeetCode?
一、数据结构和算法的基本概念
什么是数据结构?
数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或者多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效果。数据结构往往同高效的检索算法和索引技术有关。数据存储的结构和基本算法,
最基本的三种基本结构:线性结构、树型结构和图形结构。常用的算法:查找、排序。
(1)定义:
数据结构是指相互之间存在着一种或者多种关系的数据元素的集合和该集合中数据元素之间的关系组成,分为逻辑数据结构和存储(物理)数据结构两种。
(2)数据包括:数据(原材料)、数据元素(基本单位)、数据项(最小单位)、数据对象(子集)、数据结构(数据的组织形式即集合)数据类型(按照数据值的不同进行划分的可操作性)
二、为什么要学习数据结构和算法
那为什么我们要学习数据结构呢?因为要学好编程,数据结构是必须学好的,不仅仅是结构,每一种结构里面会有几种算法,这些算法包涵了不同的思想。数据结构贯穿程序设计的始终。拥有数据结构与算法的功底,能使我们更快地编写出更高效率的程序。“算法+数据结构=程序”。
算法的知识与思想已经深入到工程项目的方方面面。我们不再是为了纯粹的竞赛而学习算法,而是真的可以通过精深算法来拓展我们的解决思路,优化我们的代码性能,在项目中体现自己的价值。这也是为什么近年来一些国际大厂,例如谷歌、微软,他们在面试一位候选人时更倾向去面试算法能力而非项目经历,因为成功的业务很多都可能跟时运有关,而算法能力才能体现自己的思维能力。现代工程开发,对于前端工程师的要求早已不只是会还原样式,调试 API 的鄙视链底层的页面仔,而是一个真正需要探索性能优化,支撑起巨型项目架构的重要一环。因此逻辑的复杂度以及可钻研的深度自然不可同日而语。因此我仍认为,所有的软件开发人员都必须对算法知识有较为深刻的理解。
三、如何学练结合
除了学习课程外, 可以扩展阅读其他相关资料,代码练习课程推荐刷力扣;
四、课程收获:
作为一名以解决实际问题为导向的产品,需要将实际问题简化为数学模型是基本功,对算法和数学需要有在认识和在提高。因此要加强学习。
慕课课程的学习曲线很友好,通俗易懂,同时在看大前端的体系课,以及复习高数,算法这块需要加强在学习。