数据结构和算法的定义
- 从广义上讲,数据结构是指一组数据的存储结构,是一种组织数据的静态方式。算法是操作数据的一组方法。如:图书馆储藏书籍,一般按照类别进行存储和编号进行存储,那么这个类别和编号就是书籍的数据结构,查找书籍的位置的方法就是算法。
- 从狭义上讲,一般是指某些著名的数据结构和算法,比如队列、栈、堆、二分查找、动态规划等。
数据结构和算法的关系
两者之间是相辅相成的关系。数据结构是为算法服务的,算法要作用到特定的数据结构之上。如:数组具有随机访问的特性,常用的二分查找算法需要用数组来存储数据,但是如果用链表这种数据结构,那么二分查找算法就无法正常工作。
数据结构和算法的重点
1. 首先需要掌握一个数据结构与算法中最重要的概念--复杂度分析 [包括:时间复杂度分析方法和空间复杂度分析方法]。数据结构与算法主要是为了解决如果更省、更快的存储和处理数据。因此我们需要一个考量效率和资源消耗的方法--.
2. 数据结构与算法的正文内容。
:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图和Tire树。
:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划和字符串匹配算法。
一般掌握了这些基础的数据结构和算法,在学校更复杂的数据结构和算法就会非常快了,需要注意的是:在学习数据结构和算法的过程中不用死记硬背,而是要学习它的“来历”、“自身特点”、“适合解决的问题”和“实际的应用场景”。
如何学习数据结构与算法
1. 边学边练,适度刷题, 学习的目的是掌握然后应用,有面试需求可以进行适度刷题,推荐LeetCode。
2. 多问、多思考、多互动,学习最好的方法是联机学习,几个人一起学习,讨论,有问题及时提出寻求答疑。
3. 打怪升级法,学习过程中,最大的问题是坚持不下来,游戏都玩过,一些简单的游戏玩的不亦乐乎,究其原因无非是每天的经验值在一点一点增加,针对数据结构与算法这部分内容的学习,可以采取文档输出等方式,每天看着浏览量的增加,学习起来也会越来越有动力。
4. 知识需要沉淀,不要试图快速掌握所有知识,学习知识是一个反复迭代,不断沉淀的过程,遇到不懂得知识点可以需求他人、原文文档的帮助也可以沉淀一下,过几天再学一遍,书读百遍其义自见也是有一定道理的。
总结
今天主要介绍了一下数据结构与算法这门课程的主要内容,包括:数据结构与算法是什么、解决什么问题、两者之间的关系、判断性能依据--复杂度分析、常见的数据结构和算法以及学习的小技巧,希望通过上述简单介绍大家心里关于数据结构与算法有一个大概的印象,希望在今后的学习中一起努力、互相借鉴、一起成长。加油!数据结构与算法出自学习专栏的个人总结,不可用于商业目的
。
网友评论