2、如何抓住重点,系统高效地学习数据结构和算法?

【版权申明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权)
https://blog.csdn.net/qq_36000403/article/details/90730469
出自【zzf__的博客】

1.什么是数据结构和算法?

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

2.数据结构和算法又是什么关系呢?

数据结构和算法是相辅相成的。数据结构是为算法服务的,算法要作用在特定的数据结构之上。因此,我们无法孤立数据结构来讲算法,也无法孤立算法来讲数据结构。比如,因为数组具有随机访问的特点,常用的二分查找算法需要用数组来存储数据。但如果我们选择链表这种数据结构,二分查找算法就无法工作了,因为链表并不支持随机访问。

3.学什么?

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

3.2 学习最常用,最基础的20个数据结构与算法,学习他们的”来历”,”自身的特点”,”适合解决的问题”,”实际的应用场景”
10个数据结构:数组 链表 栈 队列 散列表 二叉树 堆 跳表 图 Trie数
10个算法:递归 排序 二分查找 搜索 哈希算法 贪心算法 分治算法 回溯算法 字符串匹配算法

4.怎么学?

(学习过程中,千万不要被动地记忆,更多地辩证地思考,多问为什么?坚持下去 写代码的时候会不由自主地考虑很多性能方面的问题)

  1. 边学边练,适度刷题
    适度刷题,但一定不要浪费太多时间在刷题上,我们学习的目的还是掌握,然后应用。除非你要面试Google Facebook这样的公司,它们的算法题目是非常非常难的,必须大量刷题,才能在短期内提升应试正确率。如果是应对国内公司的技术面试,即便是BAT这样的公司,你只要彻底掌握这个专栏的内容,就足以应对
  2. 多问,多思考,多互动
    避免一知半解
  3. 打怪升级学习法
  4. 知识需要沉淀,不要想试图一下子掌握所有。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值