提交 762c3c69 编写于 作者: C CyC2018

auto commit

上级 8b330007
......@@ -549,7 +549,7 @@ def main():
# 十二、Sentinel
Sentinel(哨兵)可以监听服务器,并在主服务器进入下线状态时,自动从从服务器中选举出新的主服务器。
Sentinel(哨兵)可以监听集群中的服务器,并在主服务器进入下线状态时,自动从从服务器中选举出新的主服务器。
# 十三、分片
......
......@@ -1082,7 +1082,7 @@ false
```java
public boolean isNumeric(char[] str) {
if (str == null)
if (str == null || str.length == 0)
return false;
return new String(str).matches("[+-]?\\d*(\\.\\d+)?([eE][+-]?\\d+)?");
}
......
......@@ -15,7 +15,7 @@
## 运行单元测试
不再需要在项目代码中添加测试代码,从而污染项目代码。
不再需要在项目代码中添加测试代码,从而避免了污染项目代码。
## 将源代码转化为可执行文件
......
......@@ -23,7 +23,7 @@
* [五、栈和队列](#五栈和队列)
* [](#栈)
* [队列](#队列)
* [六、查找](#六查找)
* [六、符号表](#六符号表)
* [初级实现](#初级实现)
* [二叉查找树](#二叉查找树)
* [2-3 查找树](#2-3-查找树)
......@@ -1290,7 +1290,7 @@ public class ListQueue<Item> implements MyQueue<Item> {
# 六、查找
# 六、符号表
符号表(Symbol Table)是一种存储键值对的数据结构,可以支持快速查找操作。
......@@ -1411,9 +1411,9 @@ public class ListUnorderedST<Key, Value> implements UnorderedST<Key, Value> {
使用一对平行数组,一个存储键一个存储值。
rank() 方法至关重要,当键在表中时,它能够知道该键的位置;当键不在表中时,它也能知道在何处插入新键。
二分查找的 rank() 方法至关重要,当键在表中时,它能够知道该键的位置;当键不在表中时,它也能知道在何处插入新键。
复杂度:二分查找最多需要 logN+1 次比较,使用二分查找实现的符号表的查找操作所需要的时间最多是对数级别的。但是插入操作需要移动数组元素,是线性级别的。
二分查找最多需要 logN+1 次比较,使用二分查找实现的符号表的查找操作所需要的时间最多是对数级别的。但是插入操作需要移动数组元素,是线性级别的。
```java
public class BinarySearchOrderedST<Key extends Comparable<Key>, Value> implements OrderedST<Key, Value> {
......@@ -2254,7 +2254,7 @@ from H1 to H3
- c : 40
- d : 80
可以将每种字符转换成二进制编码,例如将 a 转换为 00,b 转换为 01,c 转换为 10,d 转换为 11。这是最简单的一种编码方式,没有考虑各个字符的权值(出现频率)。而哈夫曼编码能让出现频率最高的字符的编码最短,从而保证整体的编码长度最短。
可以将每种字符转换成二进制编码,例如将 a 转换为 00,b 转换为 01,c 转换为 10,d 转换为 11。这是最简单的一种编码方式,没有考虑各个字符的权值(出现频率)。而哈夫曼编码采用了贪心策略,使出现频率最高的字符的编码最短,从而保证整体的编码长度最短。
首先生成一颗哈夫曼树,每次生成过程中选取频率最少的两个节点,生成一个新节点作为它们的父节点,并且新节点的频率为两个节点的和。选取频率最少的原因是,生成过程使得先选取的节点在树的最底层,那么需要的编码长度更长,频率更少可以使得总编码长度更少。
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册