跳转至

数据结构与算法

360 个字 4 张图片 预计阅读时间 1 分钟

主定理

时间复杂度定义

定义 2.1: 如果存在正常数 \(c\) \(m_{0}\) 使得当 \(N \geqslant m_{0}\) \(T(N) \leqslant c f(N)\), 则记为 \(T(N)=O f(N)\)

定义 2.2: 如果存在正常数 \(c\) \(m_{0}\) 使得当 \(N \geqslant m_{0}\) \(T(N) \geqslant c g(N)\), 则记为 \(T(N)=\Omega(g(N))\)

** 定义 2.3: ** \(T(N)=\Theta(h(N))\) 当且仅当 \(T(N)=O(h(N))\) \(T(N)=\Omega(h(N))\)

定义 2.4: 如果对每一正常数 \(c\) 存在常数 \(m_{0}\) 使得当 \(N \geqslant m_{0}\) \(T(N) \leqslant c p(N)\), \(T(N)=\) \(o(p(N))\) 。也可简述为, 如果 \(T(N)=O(p(N))\)\(T(N) \neq \Theta(p(N))\), 则 \(T(N)=o(p(N))\)

定义 2.5 若存在 c>0 n0,当 N>n0 时,T(N)>cq(N),则记为 T(N) = w(q(N))

image-20230101145822408

image-20230101145831844

\(O(1)\) 是指 \(f(n)\) 有上界

法则 1,2,3

\[ rule1 \\ IF \quad T_1(N) = O(f(N)) \ and \ T_2(N) O(g(N))\\ \begin{align} T_1(N) + T_2(N) &= O(f(N) + g(N))\\ T_1(N) * T_2(N) &= O(f(N) * g(N))\\ \end{align} \]

image-20230101145916672

主要考虑 最坏可能性 与 平均可能性

等价关系

image-20230101231048256

find: 返回包含给定元素的集合

union: 把含有两个等价类合并成一个新的等价类

采用森林 每个节点都只有父节点信息代表类 合并操作只要修改父节点信息即可

合并时采用高度或者大小合并 不要太偏向于一边