【数据结构与算法重学笔记】1、如何抓住重点,系统高效地学习数据结构与算法?

序、

        感谢lh老哥提供的极客时间账号。之前一直觉得数据结构与算法基础不是很牢固,打算利用寒假时间,跟着极客时间王争老师的——“数据结构与算法之美”课程重新学一遍数据结构和算法,故作该笔记以备总结。

一、什么是数据结构?什么是算法

1、定义:

数据结构:一组数据的存储结构

        举个例子:图书馆里图书十分多,为了方便管理,图书管理员一般会将书籍分门别类进行“存储”起来,既可以按年份分类存储,又可以按科目分类存储,还可以按书序号分类管理等等,这种按一定规律的分类就是“图书馆图书”的数据结构

算法:操作数据的一组方法

        接上个例子:如何查找图书馆中的一本书呢?你既可以一本一本查找,也可以根据科目类别定位到具体的数据,再根据书的编号定位到具体书架查找,这些查找方式就是“算法”
 

2、二者关系

数据结构是为算法服务的,算法是建立在特定的数据结构的基础上的。

       比如,数组这种数据结构具有随机访问的特点,我们常用二分查找这种算法来查找特定数据。但是链表这种数据结构不具有随机访问的特点,此时则不能用二分查找的算法来查找了。

二、学习的重点

1、复杂度分析

数据结构和算法解决的是如何更省、更快地存储和处理数据的问题,因此我们需要一个考量效率和资源消耗的方法,这就是复杂度分析方法。

2、数据结构与算法正文内容:

3、常用的10个数据结构和10个算法:

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

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

猜你喜欢

转载自blog.csdn.net/edc3001/article/details/86571020
今日推荐