码农行者 码农行者
首页
  • Python

    • 语言特性
    • Django相关
    • Tornado
    • Celery
  • Golang

    • golang学习笔记
    • 对比python学习go
    • 模块学习
  • JavaScript

    • Javascript
  • 数据结构预算法笔记
  • ATS
  • Mongodb
  • Git
云原生
运维
垃圾佬的快乐
  • 数据库
  • 机器学习
  • 杂谈
  • 面试
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

DeanWu

软件工程师
首页
  • Python

    • 语言特性
    • Django相关
    • Tornado
    • Celery
  • Golang

    • golang学习笔记
    • 对比python学习go
    • 模块学习
  • JavaScript

    • Javascript
  • 数据结构预算法笔记
  • ATS
  • Mongodb
  • Git
云原生
运维
垃圾佬的快乐
  • 数据库
  • 机器学习
  • 杂谈
  • 面试
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 数据结构与算法 - 开篇

    • 为什么要学习算法
      • 什么是数据结构与算法
        • 如何高效系统的学习
          • 一些作者分享的学习技巧
          • 计算机基础
          • 数据结构与算法笔记
          DeanWu
          2019-09-17
          目录

          数据结构与算法 - 开篇

          一直深知“数据结构和算法”,除了上学那会系统的学习过之外,工作几年都没有深入系统的学习过。最近自己的工作闲暇之余打算把这块重新系统的学习下。下边是极客时间王争老师的专栏《数据结构与算法》学习笔记,方便自己翻阅记忆。

          《数据结构与算法-王争》学习笔记,记录备查

          # 为什么要学习算法

          • 面试需要。数据结构与算法是计算机从业人员的基础,在面试时,在没有经验或无法短时间内判定一个人的能力时,考察数据结构和算法是很多大厂惯用的方法,切勿让它成为你面试的遗憾。
          • 从业务开发看,了解数据结构和算法,可以写出效率更高,占用内存更少的代码,而不是简单的CRUD操作。可以更好的了解我们使用的各种中间件的工作原理,在使用和排错方面游刃有余。
          • 从架构设计看,了解数据结构和算法,可以使架构效率更高,内存更节省,在时间和空间复杂度上更优。

          总结,了解数据结构和算法可以使我们学习效率更高,编写出占用内存更少的系统。可以快速的理解现有中间件的工作原理和方法,更好的使用。可以更好的锻炼我们的思维模式和方法。

          # 什么是数据结构与算法

          • 学习数据结构与算法时,不必去细究它的概念和定义,重在理解。
          • 广义上讲:
            • 数据结构,是指一组数据的存储结构。
            • 算法,是操作数据的一组方法。
          • 狭义上讲:是某些著名的数据结构和算法,比如队列、栈、堆、二分查找、动态规划等。

          数据结构是为算法服务的,算法要作用在特定的数据结构上,两者是相辅相成的。

          • 数据结构是静态的,只是一种数据的组织方式。如果不在它上边构建和操作算法,孤立的数据结构是无意义的。
          • 算法必须作用在特定的数据结构上,算法的构建是和数据结构的特性相关的。数据结构的不同,算法可能就会失去作用。

          # 如何高效系统的学习

          • 学习数据结构和算法时,需要抓住重点。先把常用的数据结构与算法理解透彻,复杂的可以先稍放,沉淀一段时间再回来学习。
          • 在学习数据结构和算法之前,我们需要先掌握衡量数据结构和算法的标准--复杂度分析。
          • 我们需要重点学习的数据结构和算法:
            • 数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie树。
            • 算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法。
          • 学习时,要学习数据结构的「来历」、「自身的特点」、「适合解决的问题」、「实际的应用场景」。

          # 一些作者分享的学习技巧

          • 边学边连,适度刷题。在学习的过程中,要动手,使用自己熟悉的语言把数据结构和算法实现一遍,切勿眼高手低。刷算法题,可能是公认的在短时间呢提高算法“应试能力”最好的方法。但是学习的目的是应用,切勿为了应试而耽误太多时间,可适量的刷题。
          • 多问、多学、多思考。这应该是学习所有新技能时,都可以用的方法技巧。
          • 打怪升级法。给自己制定不同时期的目标,使用目标的达成来不断的激励自己的积极性。
          • 反复迭代,不断沉淀。切勿贪多,贪快。学习知识是需要有「十年磨一剑」的毅力的,遇到啃不动的,可以先跳过,待沉淀一段时间,再回来看。常言道,稳固而知新,数据结构和算法就是这样。
          #数据结构与算法
          上次更新: 2023/03/19, 15:09:33
          最近更新
          01
          chromebox/chromebook 刷bios步骤
          03-01
          02
          redis 集群介绍
          11-28
          03
          go语法题二
          10-09
          更多文章>
          Theme by Vdoing | Copyright © 2015-2024 DeanWu | 遵循CC 4.0 BY-SA版权协议
          • 跟随系统
          • 浅色模式
          • 深色模式
          • 阅读模式