00数据结果与算法_前言

126 阅读2分钟

前言

数据结构:如何存储数据(存储数据的结构) 算法:如何操作数据结构

二者的关系

  • 数据结构服务于算法 -> 孤立的数据结构没有意义
  • 算法作用于特定的数据结构 -> 二分查找作用于数组,而不能是链表(不能随机存取)

体系

Xmind_69BwkTZj0E.png

==算法复杂度占了半壁江山,要把它当作很难的东西来学!==

学习目标

掌握哪些?

牢记基础数据结构和算法的实现和原理,高级数据结构和算法忘就忘了,用到的时候再复习。

基础数据结构和算法(最常用的)

  • 数据结构:数组、链表、栈、队列、散列表、二叉树、堆、图的定义等
  • 算法:排序、二分查找、二叉树上的操作(遍历、查找、插入、删除等)、图的深度广度优先搜索、字符串朴素匹配算法
  • 算法思想:递归、分治、贪心、回溯、动态规划

高级数据结构和算法:

  • 跳表、并查集、线段树、树状数组、BM算法、KMP算法、AC自动机、红黑树、B+树、图的一些高级算法(比如最大流、二分匹配、Dijkstra、Floyd算法)等

掌握的标准

  • 能快速实现
  • 能口述每个算法和数据结构的特点、适合解决的问题、实际应用场景。
    • 是什么?为什么?怎么做?

狂飙刷题

  • 第一点:算法题不是刷一遍就能掌握的
    • 复习周期:当天、第二天、周结
    • 随时复习:周赛or平时刷题发现哪块不熟练-> 专项练习。
  • 第二点:每道题AC后多写2遍。

复习模板分享

应用:obsidian

插件:dataview

table  Difficulty, tags, Time/Space, dateformat(file.mday, "MM-dd-yyyy") AS Last-Review-Time, Next-Review-Time, Masterty-Level, Fully-Mastery, Note
from "01algorithm/03LeetCode/链表和数组"
where Next-Review-Time = 20230701
sort Last-Review-Time ASC