什么是数据结构, 什么是算法?

广义上的

  • 数据结构就是指一组数据的存储结构. 算法是操作数据的一组方法

狭义上的

  • 指某些著名的数据结构和算法, 比如队列, 栈, 堆, 二分查找, 动态规划等.

数据结构和算法的关系?

  • 数据结构是为算法服务的, 算法要作用在特定的数据结构上.
  • 例如:

    • 数组具有随机访问的特点, 常用的二分查找算法需要用 数组 来存储数据.
  • 数据结构是静态的, 是组织数据的一种方式. 如果不在它的基础上进行操作, 构建算法, 那么孤立存在的数据结构是没用的.

学习的重点是什么

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

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

全局知识树 - 思维导图

WechatIMG557.jpeg

核心知识:

数据结构:

数组, 链表, 栈, 队列, 散列表, 二叉树, 堆, 跳表, 图, Trie 树

算法:

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

学习策略和技巧

边学边练, 适度地刷题.

  • 每周话时间, 将每周学习内容涉及的数据结构和算法都自己写出来, 用代码实现一遍.

    多问, 多思考, 多互动

  • 找到一起学习的同伴, 寻求答疑

    知识需要沉淀, 不要试图一口气掌握所有.

  • 学习知识是一个反复迭代, 不断沉淀的过程.