This commit is contained in:
krahets 2023-08-30 15:04:30 +08:00
parent 8843a93605
commit ca49da47f0
2 changed files with 2 additions and 28 deletions

View file

@ -2548,7 +2548,7 @@ $$
对数阶常出现于基于分治策略的算法中,体现了“一分为多”和“化繁为简”的算法思想。它增长缓慢,是仅次于常数阶的理想的时间复杂度。 对数阶常出现于基于分治策略的算法中,体现了“一分为多”和“化繁为简”的算法思想。它增长缓慢,是仅次于常数阶的理想的时间复杂度。
!!! tip !!! tip "$O(\log n)$ 的底数是多少?"
准确来说,“一分为 $m$”对应的时间复杂度是 $O(\log_m n)$ 。而通过对数换底公式,我们可以得到具有不同底数的、相等的时间复杂度: 准确来说,“一分为 $m$”对应的时间复杂度是 $O(\log_m n)$ 。而通过对数换底公式,我们可以得到具有不同底数的、相等的时间复杂度:

View file

@ -1333,32 +1333,6 @@ comments: true
=== "Dart" === "Dart"
```dart title="binary_search_tree.dart" ```dart title="binary_search_tree.dart"
/* 插入节点 */
void insert(int num) {
// 若树为空,直接提前返回
if (_root == null) return;
TreeNode? cur = _root;
TreeNode? pre = null;
// 循环查找,越过叶节点后跳出
while (cur != null) {
// 找到重复节点,直接返回
if (cur.val == num) return;
pre = cur;
// 插入位置在 cur 的右子树中
if (cur.val < num)
cur = cur.right;
// 插入位置在 cur 的左子树中
else
cur = cur.left;
}
// 插入节点
TreeNode? node = TreeNode(num);
if (pre!.val < num)
pre.right = node;
else
pre.left = node;
}
/* 删除节点 */ /* 删除节点 */
void remove(int num) { void remove(int num) {
// 若树为空,直接提前返回 // 若树为空,直接提前返回