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


不管学什么,要抱着目的去学才能发挥最大的效率。
先来说说我为什么学?作为一个物理专业兼修会计专业,毕业做了客户端程序员。行业已经过了红利爆发期(能应用知识就行),招聘门槛水涨船高,只具备 iOS 知识不能满足市场要求,也不能满足未来的职业生涯。客户端+前端=大前端,大前端层出不穷,学不过来;但计算机组成原理、编译原理和此笔记专题 数据结构和算法等内功心法,终身受用。废话不多说,简要如下:

目的
1. 建立时间复杂度、空间 复杂度意识
2. 写出高质量(含性能更高)的代码
3. 快速学习新技术
4. 能够设计基础架构
5. 提升编程技能
6. 训练逻辑思维
7. 积攒人生经验,以此获得工作回报,实现你的价值,完善你的人生
8. 算法 + 数据结构 = 程序 (Pascal之父提出)
思考
1. 掌握了数据结构与算法,你看待问题的深度,解决问题的角度就会完全不一样
2. 进大厂的必备内功
3. 写出开源水平的框架才是目标
4. 算法,是一种解决问题的思路和方法,有机会应用到生活和事业的其他方面
5. 长期来看,大脑思考能力是个人最重要的核心竞争力,而算法是为数不多的能够有效训练大脑思考能力的途径之一
如何抓住重点,系统高效地学习
  1. 什么是数据结构?什么是算法?

     从广义上讲,数据结构就是指一组数据的存储结构;算法就是操作数据的一组方法。eg.图书馆的书,书一定规律的编号是数据结构;如何找到一本书是算法。
     从狭义上讲,是指某些著名的数据结构和算法,比如队列、栈、堆、二分 查找、动态规划等
    
  2. 二者关系

     数据结构和算法是相辅相成的
     数据结构是为算法服务的,算法要作用在特定的数据结构之上
     无法孤立数据结构来讲算法,也无法孤立算法来讲数据结构
    
  3. 学习重点是什么?

     复杂度分析
     因:数据结构和算法解决的是如何更省、更快地存储和处理数据的问题
     果:一个考量效 率和资源消耗的方法
    
如何提高?
  1. 边学边练,适度刷题
    每周花 1~2 小时集中攻克 CheckList 涉及的数据结构和算法。
  2. 多问、多思考、多互动
    学习最好的方法是,找到几个人一起学习,一块儿讨论切磋,有问题及时寻求老师答疑。
  3. 打怪升级学习法
    • 自我激励
    • 自我总结:笔记或者思维导图
  4. 知识需要沉淀,不要想试图一下子掌握所有
    • 反复迭代、不 断沉淀的过程
    • 先掌握最基础、最常用的

大纲如下:
在这里插入图片描述

计划如下:

  • 复杂度
  • 动态数组
  • 链表
  • 队列
  • 二叉树
  • 二叉搜索树
  • 平衡二叉搜索树
  • AVL树
  • B树
  • 红黑树
  • 集合
  • 映射
  • 哈希表
  • 二叉堆
  • 优先级队列
  • 哈夫曼树
  • Trie
  • 总结
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值