Algo
Quick-Union
Weighted Quick-Union
Weighted Quick-Union with Path Compression
Percolation(渗滤)
这是Algorithms Part I第一章的练习部分。设计一个 \(N*N \) 渗滤系统,每个格子初始化为封闭状态。每次打开一个格子,直到系统渗滤为止。计算渗滤所需的平均打开格子数占总格子数的比例。
提示:
- 渗滤:意味系统第一行任意节点和最后一行任意节点连通。
- 使用
WeightedQuickUnionUF数据结构来建模系统,并使用两个虚拟节点来判断系统是否渗滤。
原文地址: Percolation
PercolationStats
二分查找树
位运算的小技巧
在 移位运算和 异或运算中讨论了这两种位运算。计算机中还有一些其他的位运算,它们比较简单,但也还有一些巧妙的作用,本文将逐一介绍它们。
...移位运算
位运算是直接操作内存中的二进制数据。因此运算效率比常规的四则运算高出不少。
...异或运算
异或运算(exclusive or)又记作XOR,一般用插入符号(caret)^表示,其可以看到是更加单纯的或运算(|)。我们知道,或运算的规则是:
- a=1,b=1,a|b=1 ①
- a,b任意一个为1,a|b=1 ②
异或运算则是去除了或运算中的规则①,即只有a、b相异时,结果才为真,其他情形都为假。因此异或运算的真值表为:
0^0 = 0
0^1 = 1
1^0 = 1
1^1 = 0
与0异或,其值不变;与1异或,相当于取反。
异或运算有一些特殊的性质,利用这些性质,可以解决特定的问题。这也是本文所要讨论的重点。
...