算法 | 解决的问题 | 应用场景 | 具体实现 |
---|---|---|---|
弗洛伊德算法 | 最短路径查找 | ||
迪杰斯特拉算法 | 最短路径查找 | ||
KMP字符串查找算法 | 子串匹配 | ||
哈夫曼编码算法(贪心算法) | 最优前缀码 | ||
GeographtHash | 空间向量编码 | ||
Bloom算法 | 过滤器 | BitArray用下标值代替实际值,用0、1表示存在 | |
paxos算法 | 分布式中强一致性问题 | ||
斐波那契数列 | |||
汉明重量算法 | 数据校验和错误检测 | 利用位运算来更高效地计算汉明重量。一种常见的方法是不断地清除二进制数最右边的 1,同时计数器加 1。可以使用n & (n - 1)这个位运算来清除最右边的 1。例如,对于二进制数 1101,n - 1得到 1100,n & (n - 1)得到 1100,此时清除了最右边的 1,计数器加 1;接着对 1100 继续这个操作,n - 1得到 1011,n & (n - 1)得到 1000,计数器再加 1;再对 1000 操作,n - 1得到 0111,n & (n - 1)得到 0000,计数器再加 1,此时 n 变为 0,计算结束,汉明重量为 3。 |