常用位运算符:
| 名称 | 符号 | 用法 |
|---|---|---|
| 位求反 | ~ | ~expr |
| 左移 | << | expr1 << expr2 |
| 右移 | >> | expr1 >> expr2 |
| 无符号右移 | >>> | expr1 >>> expr2 |
| 位与 | & | expr1 & expr2 |
| 位或 | | | expr1 | expr2 |
| 位异或 | ^ | expr1 ^ expr2 |
所有的位运算都是在二进制下来进行运算的,再二进制下只有 0/1。
布隆过滤器由一个很长的二进制向量和一系列随机映射函数组成。用于检索一个元素是否在一个集合中。
- 优点是空间效率和查询时间远超一般算法
- 缺点是有一定的错误识别率和删除困难
布隆过滤器是一个快速判断元素是否存在集合的算法,特点是:
- 不需要像哈希表一样存额外的信息
- 只能判断肯定不存在或可能存在
- 适合用作高速缓存,如判断为可能存在,再到数据库中查询
- 每个元素的存在用几个二进制位置 1 来表示
- 多用于大型分布式系统如比特币网络、Redis 缓存、垃圾邮件过滤器、评论过滤器等
- 快排
- 归并排序算法
- 堆排序