《算法》笔记导航

第一章 1.栈,队列,背包

算法1.1下压栈(能够动态调整数组大小的实现)
算法1.2下压堆栈(链表实现)
算法1.3先进先出队列(链表)
算法1.4背包(链表)——只可添加元素,未实现

  • 1.1是数组,1.2,1.3,1.4是链表。
    1.1,1.2是栈,1.3是队列,1.4是背包。
  • 栈:后进先出。
    队列:先进先出。
    背包:只进不出。
  • 数组优点:通过索引可以直接访问任意元素
    数组缺点:在初始化时就需要知道元素的数量(用更大的数组时会浪费时间)
    链表优点:使用的空间大小和元素数量成正比
    链表缺点:需要通过引用访问任意元素(不能直接访问中间的某一项,需要一个个去找)

第一章 2.树来处理连通问题

算法1.5union-find算法实现(加权quick-union算法)

  • 连通问题:检测节点a和b是否相连(find(a)?=find(b))

第二章 排序

算法2.0排序算法类的模板


算法2.1选择排序
算法2.2插入排序
算法2.3希尔排序
算法2.4自顶向下的归并排序(原地)
算法2.5.1快速排序(普通)
算法2.5.2快速排序(三向切分)
算法2.6基于堆的优先队列
算法2.7堆排序

第三章 查找

算法3.1顺序查找(基于无序链表)
算法3.2二分查找(基于有序数组)
算法3.3基于二叉查找树的符号表
算法3.4红黑树的插入算法
算法3.5基于拉链法的散列表

第四章 图

第一节 无向图

算法4.0.1无向图邻接表


算法4.1使用深度优先搜索查找图中的路径
算法4.2使用广度优先搜索查找图中的路径

你可能感兴趣的:(《算法》笔记导航)