Two Ways Algorithm

Two Ways Algorithm 是一个用于字符串匹配的算法,算法类似 KMP 会返回所有 pattern 出现在 text 里的位置。但是和 KMP 不同的是 two ways algorithm 只使用常数大小的额外空间。

算法使用 \(O(m)\) 的时间预处理,并且可以在 \(O(n)\) 时间完成匹配,在最差的情况下会遍历 text 串两次。

Garbage Collection: Mark-Sweep

1 Automatic dynamic memory management

原则上,回收器最终都会将所有不可达对象回收。

  1. 追踪式回收 引入 垃圾 这一具有明确判定标准的概念,但它不一定包含所有不再使用的对象。
  2. 出于效率原因,某些对象可能不会被回收。

2 Comparing garbage collection algorithms

用什么来衡量各种垃圾回收算法的好坏呢:

matplotlib基础

1 Introduction

matplotlib是一个很好用的可以画2D图的Python模块。它提供了很方便进行可视化数据的方案。下面是对matplotlib的使用进行了一个简单的记录。

C++ zip实现

最近心血来潮想在C++里实现一些像在python里一样好用的小组件,主要是希望充分发挥C++11for循环的威力。在完成了enumerate之后,在zip的完成上用了比较久的时间。

C++ Template

1 函数模板

模板被编译了两次,分别发生在:

  1. 实例化之前,先检查模板代码本身,查看语法是否正确。
  2. 在实例化旗舰,检查模板代码,查看是否所有的调用都有效。

在模板推导的过程中,不会进行自动的类型转换,每个类型都必须正确的匹配。