开篇,为什么学,怎么学数据结构和算法?

129 阅读2分钟

唐诗开篇,与文无关。

曲池荷

卢照邻(约632~约695,幽州范阳(河北涿州)人)。自号幽忧子,与杨炯、王勃、骆宾王并称为"初唐四杰",世称"王杨卢骆"。擅长诗歌骈文,尤擅长七言歌行,意境清迥.

浮香绕曲岸,圆影覆华池。

常恐秋风早,飘零君不知。

为什么学,怎么学数据结构和算法?

为什么要学?

学习知识都是为了“”的,是为了解决实际工作中的问题。平时不需要自己实现,并不代表都不需要了解。 掌握数据结构和算法,不论是阅读框架源码还是理解其背后的设计原理,都是非常有用的。

其一:直接来说能在工作中写出性能更优的代码。

其二:算法其实就是解决问题的思路和方法,大量应用于平时的学习、工作和生活中。

其三:竞争的核心其实是人,学习数据结构和算法能够有效锻炼大脑思维逻辑,提高核心竞争力

什么是数据结构和算法?

广义上讲,数据结构就是指一组数据的存储结构。算法就是操作数据的一组方法。 数据结构和算法是相辅相成的。数据结构是为算法服务的,算法要作用在特定的数据结构之上。

例如:因为数组的随机访问特性,常用的二分查找算法组要作用数据来存储数据。如果选择链表这种数据结构,二分查找法就无法工作,因为链表并不支持随机访问。

数据机构是静态的,他只是组织数据的一种方式。如果不在他的基础上操作数据、构建算法,孤立存在的数据结构是没有作用的。

首先要明确一点:复杂度分析在数据结构和算法中是非常重要的。复杂度分析方法就是考量数据结构和算法效率及资源消耗的方法。可以说是评价一种数据结构和算法适用性的标尺。

数据结构和算法

20个常用的数据结构和算法:

10个数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie树。

10个常用算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法。

怎么学?

边学边练,适度刷题。

主动提出问题,多思考。

多做学习笔记。

学习数据结构和算法是一个枯燥的过程,自我激励,自我鼓励很重要。

文末推荐算法可视化网站,方便理解和学习。

数据结构和算法可视化网站

VisuAlgo:visualgo.net/zh

algorithm-visualizer:algorithm-visualizer.org/

www.cs.usfca.edu/~galles/vis…

学习知识是反复迭代,不断沉淀的过程。