Loading docs/ds/skiplist.md +2 −2 Original line number Diff line number Diff line Loading @@ -20,7 +20,7 @@ ### 空间复杂度 对于一个节点节点而言,节点的最高层数为 $i$ 的概率为 $p^{i-1}(1 - p)$ 。所以,跳表的期望层数为 $\sum_{i>=1} ip^{i - 1}(1-p) = \frac{1}{1 - p}$ ,且因为 $p$ 为常数,所以跳表的 **期望空间复杂度** 为 $O(n)$ 。 对于一个节点而言,节点的最高层数为 $i$ 的概率为 $p^{i-1}(1 - p)$ 。所以,跳表的期望层数为 $\sum_{i>=1} ip^{i - 1}(1-p) = \frac{1}{1 - p}$ ,且因为 $p$ 为常数,所以跳表的 **期望空间复杂度** 为 $O(n)$ 。 在最坏的情况下,每一层有序链表等于初始有序链表,即跳表的 **最差空间复杂度** 为 $O(n \log n)$ 。 Loading Loading @@ -160,7 +160,7 @@ bool erase(const K &key) { // 节点不存在 if (p->key != key) return false; // 从最底层开始删出 // 从最底层开始删除 for (int i = 0; i <= level; ++i) { // 如果这层没有p删除就完成了 if (update[i]->forward[i] != p) { Loading Loading
docs/ds/skiplist.md +2 −2 Original line number Diff line number Diff line Loading @@ -20,7 +20,7 @@ ### 空间复杂度 对于一个节点节点而言,节点的最高层数为 $i$ 的概率为 $p^{i-1}(1 - p)$ 。所以,跳表的期望层数为 $\sum_{i>=1} ip^{i - 1}(1-p) = \frac{1}{1 - p}$ ,且因为 $p$ 为常数,所以跳表的 **期望空间复杂度** 为 $O(n)$ 。 对于一个节点而言,节点的最高层数为 $i$ 的概率为 $p^{i-1}(1 - p)$ 。所以,跳表的期望层数为 $\sum_{i>=1} ip^{i - 1}(1-p) = \frac{1}{1 - p}$ ,且因为 $p$ 为常数,所以跳表的 **期望空间复杂度** 为 $O(n)$ 。 在最坏的情况下,每一层有序链表等于初始有序链表,即跳表的 **最差空间复杂度** 为 $O(n \log n)$ 。 Loading Loading @@ -160,7 +160,7 @@ bool erase(const K &key) { // 节点不存在 if (p->key != key) return false; // 从最底层开始删出 // 从最底层开始删除 for (int i = 0; i <= level; ++i) { // 如果这层没有p删除就完成了 if (update[i]->forward[i] != p) { Loading