从广义上讲,数据结构就是指一组数据的存储结构。算法就是操做数据的一组方法。面试
从狭义上讲,是指某些著名的数据结构和算法,好比队列、堆、栈、二分查找、动态规划等。算法
数据结构和算法是相辅相成的。数据结构是为算法服务的,算法要做用在特定的数据结构之上。所以,咱们没法孤立数据结构来说算法,也没法孤立算法来说数据结构。数组
首先,要掌握数据结构与算法最重要的概念——复杂度分析。微信
10个数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie树数据结构
10个算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法框架
每周花几个个小时的时间,把上述20个经常使用的数据结构和算法,所有本身写出来,用代码实现一遍,同时能够去leetcode或lintcode刷刷题。数据结构和算法
写好一段代码之后,要问一下本身:这样写合适吗?有没有更好的方法?若是用其余方法写,效果如何?性能
多找几我的一块儿学习,之前我都是本身学习,如今愈来愈意识到互动的重要性,此次加入了一个「一块儿学数据结构和算法」的微信群,你们互相监督学习,有了良好的学习氛围,对学习帮助也更大。学习
每节课后都写下一篇笔记或学习心得,输出文章自己也是一个学习的过程,经过写文章,不只提高了写做能力,也能倒逼本身学习更多知识。code
遇到学不懂的知识点,不要急躁,学习知识的过程就是反复迭代、不断沉淀的过程。