• 最近在极客时间上面学习王争老师的课程《数据结构与算法之美》,以前虽然学过一些皮毛,但是不够精,作为程序员的基本内功,还是要继续学习。至此通过总结的方式,把这门课的要点记录下来,供自己思考回顾,也分享给大家。

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

  • 1、广义上,数据结构指的是一组数据的存储结构,算法指的是操作数据的一组方法。
  • 2、数据结构和算法之间有什么关系呢?数据结构和算法是相辅相成的。数据结构是为算法服务的,算法要建立在特定的数据结构之上,因此无法孤立数据结构来讲算法,也无法孤立算法来讲数据结构。

二、学习的重点

  • 想要学习数据结构与算法,首先要掌握复杂度分析,因为数据结构与算法解决的就是如何更省、更快地存储和处理数据的问题,因此我们要有一个衡量效率和资源消耗的方法,这就是复杂的分析。
  • 搞定复杂度分析后,后面就是数据结构与算法的正文内容了,如下所示:

  • 作为初学者和非算法工程师,只需要掌握最常用、最基础的20个数据结构与算法,学习他们的:“来历”、“特点”、“适合解决什么问题”和“实际的应用场景”,分别是一下10个数据结构和10个算法:
  • 数据结构:数组、链表、栈、队列、散列表、二叉树‘、堆、跳表、图、Tire树
  • 算法: 递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法

三、如何学习

  1. 边学边练,适度刷题;
    边学边练,每周花 1~2 小时集中把所学中涉及的数据结构和算法,全部写出来,用代码实现一遍。
  2. 多问、多思考、多互动;
  3. 自我激励,每次学习完做一篇学习笔记;
  4. 沉下心不要浮躁,不要想试图一下子掌握所有,学习知识是反复迭代、不断沉淀的过程。

数据结构与算法之美(一):概论相关推荐

  1. 推荐学习-数据结构与算法之美

    推荐一个学习资源:数据结构与算法之美.主要包括以下几个学习内容: 20个经典数据结构与算法 100个真实项目场景案例 文科生都能看懂的算法手绘图解 轻松搞定BAT的面试通关秘籍 作者:王争 前谷歌工程 ...

  2. 极客时间 自我提升第二天 数据结构与算法之美 应该掌握 / 趣谈网络原理 / 深入浅出计算机组成原理 思维导图

    菜鸟今天又来完成所说的诺言,也希望大家督促,在今天的学习中,菜鸟有了新的认知,我会将上一篇中理解不完善的一些地方进行补充,学习本就是不断打破自己的认知,如果思考都不做,何来的知识的积累 文章目录 数据 ...

  3. mysql索引用trie树_数据结构与算法之美【完整版】

    资源目录: ├─01-开篇词 (1讲) │ ├─00丨开篇词丨从今天起,跨过"数据结构与算法"这道坎.html │ ├─00丨开篇词丨从今天起,跨过"数据结构与算法&qu ...

  4. 《数据结构与算法之美》目录

    数据结构与算法之美_算法实战_算法面试 开篇词 (1讲) <数据结构与算法之美>学习指导手册 开篇词 | 从今天起,跨过"数据结构与算法"这道坎 入门篇 (4讲) 01 ...

  5. 王争数据结构与算法之美开篇问题整理

    数据结构与算法之美笔记整理 为什么大多数编程语言中数组从 0 而不是从 1 开始编号? 从数组存储的内存模型上来看,"下标"最确切的定义应该是"偏移(offset)&qu ...

  6. 干货教程:数据结构与算法之美

    特别放送 第⼀期:数据结构与算法学习书单 第⼆期:争哥独家学习⼼得 第三期:算法实战测试题 第四期:⼤咖的专栏学习⽅法 ⽤户故事 1:这⼀年我的脑海⾥只有算法 ⽤户故事 2:只有站在思维的⾼处,才有⾜ ...

  7. 数据结构与算法之美-目录

    复杂度分析 数组 栈 队列 链表 递归 排序 二分查找 跳表 散列表 哈希算法 二叉树 红黑树 B+树 堆与堆排序 图的表示 深度广度优先搜索 拓扑排序 最短路径 A*算法 字符串匹配(BF RK) ...

  8. 数据结构与算法之美02

    二.算法复杂度分析 如何分析.统计算法的执行效率和资源消耗? 时间.空间复杂度分析. 为什么需要复杂度分析? 你可能会有些疑惑,我把代码跑一遍,通过统计.监控,就能得到算法执行的时间和占用的内存大 小 ...

  9. 数据结构与算法之美01-开篇词

    开篇词 | 从今天起,跨过"数据结构与算法"这道坎 ​ 作者是王争,毕业于西安交通大学计算机专业.现在回想起来,本科毕业的时候,我的编程水平其实是很差的.直到读研究生的时候,一个师 ...

最新文章

  1. springboot使用logback日志,部署到tomcat不生效问题解决
  2. postfix+sasl+dovecot
  3. P4513 小白逛公园 (线段树)
  4. 10.21 crond定时任务练习
  5. 各品牌类型电脑BOIS中USB模式启动热键
  6. Delphi IDE扩展工具,在IDE中增加Google翻译器
  7. JAVA入门级教学之(方法-调用-5)
  8. 【十四】无验证码登录配置:通过登录接口获取 token 配置全局变量
  9. 音乐制作:用FL Studio做电子音乐
  10. CTP接口封装相关贴---集合
  11. 测试用例-1-微信发红包功能
  12. donet 微服务开发 学习-consul 服务端Api开发
  13. iOS-App Logo和闪屏图尺寸
  14. JS 用时间戳计算两个时间之间间隔
  15. 关于真空荧光显示屏的·学习记录
  16. python爬虫利用线程池下载视频
  17. nginx signal 之 quit
  18. con和com开头单词规律_英语成绩总上不了120分?问题出在背单词!
  19. android keyboard颜色,Android基于KeyboardView和Keyboard实现自定义软键盘 自定义键盘背景色...
  20. 西门子200SMART 5轴伺服控制程序

热门文章

  1. Java-汉字字符串转拼音,包括首字母和全拼
  2. Python 实现斐波那契数列中的前50个
  3. 《手机与数字娱乐产品可用性的分析》
  4. java 银联支付_java服务器端移动银联支付的流程
  5. Travis CI 简介
  6. html 水印插件,Watermark.js 在浏览器端添加水印插件 - 文章教程
  7. ISO、快门、光圈、曝光
  8. JS + 递归实现细胞分裂
  9. 好莱坞励志电影 大全
  10. 关于魔兽世界插件AddOns