跳到主要内容

2 篇博文 含有标签「算法」

查看所有标签

哈夫曼编码 Node.js 简单实现

· 阅读需 14 分钟
多云转晴
前端开发

哈夫曼树

定义

  1. 给定 n 个权值作为 n 个叶子结点,构造一棵二叉树,若该树的带权路径长度(WPL)达到最小,称这样的二叉树为 最优二叉树,也称为 哈夫曼树

  2. 哈夫曼树是带权路径长度最短的树,权值较大的结点离根结点较近。

  3. 树的带权路径长度:树的带权路径长度规定为所有叶子结点的带权路径长度(WPL,weighted path length)之和,权值越大的结点离根结点越近的二叉树才是最优二叉树。

  4. WPL 最小的就是哈夫曼树。

WPL计算过程

浏览器缓存

· 阅读需 7 分钟
多云转晴
前端开发

浏览器的缓存类型比较多,例如:

  • HTTP Cache: HTTP 缓存;
  • Disk Cache: 将缓存写入到硬盘中;
  • Memory Cache: 将缓存写入到内存中;
  • Service Worker Cache;

强缓存

Disk CacheMemory Cache 属于强缓存,是 HTTP 缓存的产物,强缓存的产生依赖于请求响应中的 cache-controlexpires 的 headers 字段。这两个字段都用来设置缓存数据的有效时间。

强缓存