1.1系统认识数据结构、算法体系

60 阅读1分钟

数据结构:

线性表

  1. 数组
    场景:适合长度不变,有固定序号,不需要频繁增、减
  2. 链表
    场景:适合需要频繁增、减

散列表

  1. 哈希表
    场景:每一个值都有哈希函数与其对应,方便查找

  1. 二叉树
    每一个节点有两个子节点

  2. B树
    m个节点有m个子节点

  3. 完全二叉树/不完全二叉树
    完全二叉树:二叉树最后一层填满,从左到右没有间隔
    不完全二叉树:二叉树最后一层不填满,从左到有间隔

算法

时间/空间复杂度

排序

  1. 冒泡排序
  2. 快速排序
  3. 堆排序

查找

  1. 二分查找

贪心算法

贪心算法就像在吃零食时,每次选择当前最好吃的零食,不考虑以后会不会后悔。

回溯算法

回溯就像在迷宫中探索路径。你尝试走一条路,如果发现这条路行不通,就退回去尝试其他路径。

分治算法

分治就像在处理大任务时,将其分解成多个小任务,然后分别解决这些小任务,最后再合并结果。

动态规划

像拼图游戏,解决每一小块(子问题),然后将小块组合成整体,爬楼梯就是用的动态规划。

字符串

  1. 深度优先
  2. 广度优先