唐诗开篇,与文无关。
曲池荷
卢照邻(约632~约695,幽州范阳(河北涿州)人)。自号幽忧子,与杨炯、王勃、骆宾王并称为"初唐四杰",世称"王杨卢骆"。擅长诗歌骈文,尤擅长七言歌行,意境清迥.
浮香绕曲岸,圆影覆华池。
常恐秋风早,飘零君不知。
为什么学,怎么学数据结构和算法?
为什么要学?
学习知识都是为了“用”的,是为了解决实际工作中的问题。平时不需要自己实现,并不代表都不需要了解。 掌握数据结构和算法,不论是阅读框架源码还是理解其背后的设计原理,都是非常有用的。
其一:直接来说能在工作中写出性能更优的代码。
其二:算法其实就是解决问题的思路和方法,大量应用于平时的学习、工作和生活中。
其三:竞争的核心其实是人,学习数据结构和算法能够有效锻炼大脑思维逻辑,提高核心竞争力。
什么是数据结构和算法?
广义上讲,数据结构就是指一组数据的存储结构。算法就是操作数据的一组方法。 数据结构和算法是相辅相成的。数据结构是为算法服务的,算法要作用在特定的数据结构之上。
例如:因为数组的随机访问特性,常用的二分查找算法组要作用数据来存储数据。如果选择链表这种数据结构,二分查找法就无法工作,因为链表并不支持随机访问。
数据机构是静态的,他只是组织数据的一种方式。如果不在他的基础上操作数据、构建算法,孤立存在的数据结构是没有作用的。
首先要明确一点:复杂度分析在数据结构和算法中是非常重要的。复杂度分析方法就是考量数据结构和算法效率及资源消耗的方法。可以说是评价一种数据结构和算法适用性的标尺。
20个常用的数据结构和算法:
10个数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie树。
10个常用算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法。
怎么学?
边学边练,适度刷题。
主动提出问题,多思考。
多做学习笔记。
学习数据结构和算法是一个枯燥的过程,自我激励,自我鼓励很重要。
文末推荐算法可视化网站,方便理解和学习。
数据结构和算法可视化网站
VisuAlgo:visualgo.net/zh
algorithm-visualizer:algorithm-visualizer.org/
学习知识是反复迭代,不断沉淀的过程。