数据结构和算法是什么?

从广义上讲,数据结构就是指一组数据的存储结构。算法就是操作数据的一组方法。

从狭义上讲,是指某些著名的数据结构和算法,比如队列、堆、栈、二分查找、动态规划等。

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

数据结构和算法有什么关系?

数据结构和算法是相辅相成的。数据结构是为算法服务的,算法要作用在特定的数据结构之上。因此,我们无法孤立数据结构来讲算法,也无法孤立算法来讲数据结构。

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

如果不学数据结构和算法:

  • 难以通过大公司的面试
  • 编写的代码运行效率低下,占用存储空间大
  • 写出来的框架Bug多、性能一般、扩展性不好

学好了数据结构和算法:

  • 大大提升进入大公司的机会
  • 编写的代码运行“更快”和“更省存储空间”
  • 写出来的框架可以开源到Github上给很多人用

怎么学数据结构和算法?

学习的重点在哪里?

首先,要掌握数据结构与算法最重要的概念——复杂度分析。

20个最常用的、最基础数据结构与算法

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

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

学习的一些技巧

1、边学边练,适度刷题

每周花几个个小时的时间,把上述20个常用的数据结构和算法,全部自己写出来,用代码实现一遍,同时可以去leetcode或lintcode刷刷题。

2、多问、多思考、多互动

写好一段代码以后,要问一下自己:这样写合适吗?有没有更好的方法?如果用其他方法写,效果如何?

多找几个人一起学习,以前我都是自己学习,现在越来越意识到互动的重要性,这次加入了一个「一起学数据结构和算法」的微信群,大家互相监督学习,有了良好的学习氛围,对学习帮助也更大。

3、通过输出倒逼输入

每节课后都写下一篇笔记或学习心得,输出文章本身也是一个学习的过程,通过写文章,不仅提升了写作能力,也能倒逼自己学习更多知识。

4、知识需要沉淀,不要试图一下子掌握所有

遇到学不懂的知识点,不要急躁,学习知识的过程就是反复迭代、不断沉淀的过程。

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄