跳转至

T09. Recursion

没啥东西。就讲了讲普通递归、记忆化(动态规划)、快速幂、归并排序。

不过这个归并排序看起来怪怪的,里面有个 workspace 的概念,不知道是指啥东西(好像是数组名?)。看示例代码中规中矩的。后面还分析了一下归并排序的性能(copy 和 comparison 多少次之类的)

最后讲了一下汉诺塔问题。好像有点不好懂。

public static void doTowers(int topN, char src, char inter, char dest) {
  if (topN == 1) {
    System.out.println("Disk 1 from " + src + " to " + dest);
  } else {
    // Move top N-1 from src to inter
    doTowers(topN - 1, src, dest, inter);
    // Move the biggest disk from src to dest
    System.out.println("Disk " + topN + " from " + src + " to " + dest);
    // Move top N-1 from inter to dest
    doTowers(topN - 1, inter, src, dest); // inter to dest
  }
}