筛法是快速找出质数的一种方法。平常没有使用任何筛法的的找质数的时间复杂度通常为 $O(\sqrt n)$,比较慢,但是筛法更快一些。我们学的筛法是埃氏筛和欧拉筛(线性筛)。
平常的找质数方法是判断一个数是否能被 1 和它本生以外的数整除,但是筛法的思想不一样。筛法可以说是通常方法的逆向思维,挨个儿寻找当前数的倍数,打上标记,再继续寻找,最后没有被打上标记的就是质数。这种思想的时间复杂度快很多。
数论:质数筛法
哈夫曼树和哈夫曼编码
更前面的知识:树的概念
先来说说前面的芝士:
- 路径长度 从根结点到目标结点经过的结点数量(边的数量)。
- 权值 一个结点的权值可以是人为赋予的一个数。
- 结点的带权路径长度 从根节点到当前结点的路径长度乘结点的权值。
- 树的带权路径长度 整个树中叶子结点的带权路径长度总和。
哈夫曼树是二叉树,且哈夫曼树的带权路径长度最小,哈夫曼编码会用到。
二叉树的前序、中序、后序遍历
二叉树的前序遍历中序遍历和后序遍历是比较重要的CCF办的比赛要考(雾。可以通过这三个遍历的顺序结果确定整个树的结构。前序遍历是根左右,中序遍历是左根右,后序遍历是左右根。(不想多写什么了)